From c675c7c860eeb920db2742e6705027400d9ca10e Mon Sep 17 00:00:00 2001 From: Neshura Date: Wed, 7 Aug 2024 21:07:12 +0200 Subject: [PATCH] CI Cross-Job Var Fix Attempt --- .forgejo/workflows/build+release.yml | 99 +++++++++++++++------------- .forgejo/workflows/pull-requests.yml | 75 ++++++++++++++------- .forgejo/workflows/test.yml | 15 ++--- 3 files changed, 113 insertions(+), 76 deletions(-) diff --git a/.forgejo/workflows/build+release.yml b/.forgejo/workflows/build+release.yml index 81de150..8d4509c 100644 --- a/.forgejo/workflows/build+release.yml +++ b/.forgejo/workflows/build+release.yml @@ -11,14 +11,13 @@ jobs: runs-on: docker container: forgejo.neshweb.net/ci-docker-images/rust-node:latest steps: - - - name: Add Clippy + - name: Add Clippy run: rustup component add clippy - - - name: Checking Out Repository Code + + - name: Checking Out Repository Code uses: https://code.forgejo.org/actions/checkout@v3 - - - name: Set Up Cargo Cache + + - name: Set Up Cargo Cache uses: actions/cache@v3 with: path: | @@ -28,11 +27,11 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - - name: Run Clippy + + - name: Run Clippy run: cargo clippy - - - name: Check if Version in Cargo.toml matches Tag + + - name: Check if Version in Cargo.toml matches Tag run: | VERSION=$(cat Cargo.toml | grep -E "(^|\|)version =" | cut -f2- -d= | tr -d \" | tr -d " ") if test $VERSION != "${{ github.ref_name }}"; then @@ -47,32 +46,43 @@ jobs: if: success() runs-on: docker container: forgejo.neshweb.net/ci-docker-images/rust-node:latest + outputs: + DEBIAN_NAME: ${{ steps.deb_bundle.outputs.debian_name }} + DEBIAN_REV: ${{ steps.deb_bundle.outputs.debian_rev }} + DEBIAN_REF: ${{ steps.deb_bundle.outputs.debian_ref }} steps: - - - name: Checking Out Repository Code + - name: Checking Out Repository Code uses: https://code.forgejo.org/actions/checkout@v3 - - - name: Prepare build environment + + - name: Prepare build environment run: mkdir dist - - - name: Compiling To Linux Target + + - name: Compiling To Linux Target run: | cargo build -r mv target/release/${{ github.event.repository.name }} dist/${{ github.event.repository.name }}-linux-amd64 - - - name: Bundle .deb package - id: deb_bundle + + - name: Collect Debian Metadata + id: deb + run: | + DEBIAN_REF=$(cat Cargo.toml | grep -E "(^|\|)version =" | cut -f2- -d= | tr -d \" | tr -d " " | tr - \~) + echo "debian_ref=$DEBIAN_REF" >> $GITHUB_OUTPUT + echo DEBIAN_REF: $DEBIAN_REF + DEBIAN_REV=$(cat Cargo.toml | grep -E "(^|\|)revision =" | cut -f2- -d= | tr -d \" | tr -d " ") + echo "debian_rev=$DEBIAN_REV" >> $GITHUB_OUTPUT + echo DEBIAN_REV: $DEBIAN_REV + DEBIAN_NAME=$(cat Cargo.toml | grep -E "(^|\|)name =" | tail -n1 | cut -f2- -d= | tr -d \" | tr -d " ") + echo "debian_name=$DEBIAN_NAME" >> $GITHUB_OUTPUT + echo DEBIAN_NAME: $DEBIAN_NAME + + - name: Bundle .deb package run: | cargo deb - DEBIAN_REF=$(echo ${{ github.ref_name }} | tr - \~) - echo "debian_ref=$DEBIAN_REF" >> ${{ env.GITHUB_OUTPUT }} - DEBIAN_REV=-$(cat Cargo.toml | grep -E "(^|\|)revision =" | cut -f2- -d= | tr -d \" | tr -d " ") - echo "debian_rev=$DEBIAN_REV" >> ${{ env.GITHUB_OUTPUT }} - DEBIAN_NAME=-$(cat Cargo.toml | grep -E "(^|\|)name =" | cut -f2- -d= | tr -d \" | tr -d " ") - echo "debian_name=$DEBIAN_NAME" >> ${{ env.GITHUB_OUTPUT }} - mv target/debian/${{ DEBIAN_NAME }}_${{ DEBIAN_REF }}${{ DEBIAN_REV }}_amd64.deb dist/${{ DEBIAN_NAME }}_${{ DEBIAN_REF }}${{ DEBIAN_REV }}_amd64.deb - - - name: Uploading Build Artifact + DEBIAN_FILE=$(echo ${{ steps.deb.outputs.debian_name }}_${{ steps.deb.outputs.debian_ref }}-${{ steps.deb.outputs.debian_rev }}_amd64.deb) + echo mv target/debian/$DEBIAN_FILE dist/$DEBIAN_FILE + mv target/debian/$DEBIAN_FILE dist/$DEBIAN_FILE + + - name: Uploading Build Artifact uses: actions/upload-artifact@v3 with: name: release_blobs @@ -84,11 +94,10 @@ jobs: if: success() runs-on: docker steps: - - - name: Downloading All Build Artifacts + - name: Downloading All Build Artifacts uses: actions/download-artifact@v3 - - - name: Upload Binary + + - name: Upload Binary run: | echo 'curl -v --user ${{ secrets.FORGEJO_USERNAME }}:${{ secrets.FORGEJO_TOKEN }} \ --upload-file release_blobs/${{ github.event.repository.name }}-linux-amd64 \ @@ -102,27 +111,26 @@ jobs: if: success() runs-on: docker steps: - - - name: Downloading All Build Artifacts + - name: Downloading All Build Artifacts uses: actions/download-artifact@v3 - - - name: Upload Debian Package to staging + + - name: Upload Debian Package to staging run: | echo 'curl -v --user ${{ secrets.FORGEJO_USERNAME }}:${{ secrets.FORGEJO_TOKEN }} \ - --upload-file release_blobs/${{ steps.deb_bundle.outputs.debian_name }}_'${{ steps.deb_bundle.outputs.debian_ref }}${{ steps.deb_bundle.outputs.debian_rev }}'_amd64.deb \ + --upload-file release_blobs/${{ needs.build.outputs.debian_name }}_'${{ needs.build.outputs.debian_ref }}-${{ needs.build.outputs.debian_rev }}'_amd64.deb \ ${{ env.GITHUB_API_URL }}/packages/${{ env.GITHUB_REPOSITORY_OWNER }}/debian/pool/bookworm/staging/upload' curl -v --user ${{ secrets.FORGEJO_USERNAME }}:${{ secrets.FORGEJO_TOKEN }} \ - --upload-file release_blobs/${{ steps.deb_bundle.outputs.debian_name }}_${{ steps.deb_bundle.outputs.debian_ref }}${{ steps.deb_bundle.outputs.debian_rev }}_amd64.deb \ + --upload-file release_blobs/${{ needs.build.outputs.debian_name }}_${{ needs.build.outputs.debian_ref }}-${{ needs.build.outputs.debian_rev }}_amd64.deb \ ${{ env.GITHUB_API_URL }}/packages/${{ env.GITHUB_REPOSITORY_OWNER }}/debian/pool/bookworm/staging/upload - - - name: Upload Debian Package to main + + - name: Upload Debian Package to main if: (! contains(github.ref_name, '-rc')) run: | echo 'curl -v --user ${{ secrets.FORGEJO_USERNAME }}:${{ secrets.FORGEJO_TOKEN }} \ - --upload-file release_blobs/${{ steps.deb_bundle.outputs.debian_name }}_'${{ steps.deb_bundle.outputs.debian_ref }}${{ steps.deb_bundle.outputs.debian_rev }}'_amd64.deb \ + --upload-file release_blobs/${{ needs.build.outputs.debian_name }}_'${{ needs.build.outputs.debian_ref }}-${{ needs.build.outputs.debian_rev }}'_amd64.deb \ ${{ env.GITHUB_API_URL }}/packages/${{ env.GITHUB_REPOSITORY_OWNER }}/debian/pool/bookworm/main/upload' curl -v --user ${{ secrets.FORGEJO_USERNAME }}:${{ secrets.FORGEJO_TOKEN }} \ - --upload-file release_blobs/${{ steps.deb_bundle.outputs.debian_name }}_${{ steps.deb_bundle.outputs.debian_ref }}${{ steps.deb_bundle.outputs.debian_rev }}_amd64.deb \ + --upload-file release_blobs/${{ needs.build.outputs.debian_name }}_${{ needs.build.outputs.debian_ref }}-${{ needs.build.outputs.debian_rev }}_amd64.deb \ ${{ env.GITHUB_API_URL }}/packages/${{ env.GITHUB_REPOSITORY_OWNER }}/debian/pool/bookworm/main/upload create-release: @@ -130,11 +138,10 @@ jobs: if: success() runs-on: docker steps: - - - name: Downloading All Build Artifacts + - name: Downloading All Build Artifacts uses: actions/download-artifact@v3 - - - name: Release New Version + + - name: Release New Version uses: actions/forgejo-release@v2 with: direction: upload diff --git a/.forgejo/workflows/pull-requests.yml b/.forgejo/workflows/pull-requests.yml index d8db6cd..72d7b56 100644 --- a/.forgejo/workflows/pull-requests.yml +++ b/.forgejo/workflows/pull-requests.yml @@ -11,14 +11,13 @@ jobs: runs-on: docker container: forgejo.neshweb.net/ci-docker-images/rust-node:latest steps: - - - name: Add Clippy + - name: Add Clippy run: rustup component add clippy - - - name: Checking Out Repository Code + + - name: Checking Out Repository Code uses: https://code.forgejo.org/actions/checkout@v3 - - - name: Set Up Cargo Cache + + - name: Set Up Cargo Cache uses: actions/cache@v3 with: path: | @@ -28,8 +27,8 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - - name: Run Clippy + + - name: Run Clippy run: cargo clippy build: @@ -37,29 +36,61 @@ jobs: if: success() runs-on: docker container: forgejo.neshweb.net/ci-docker-images/rust-node:latest + outputs: + debian_name: ${{ steps.deb.outputs.debian_name }} + debian_rev: ${{ steps.deb.outputs.debian_rev }} + debian_ref: ${{ steps.deb.outputs.debian_ref }} steps: - - - name: Checking Out Repository Code + - name: Checking Out Repository Code uses: https://code.forgejo.org/actions/checkout@v3 - - - name: Prepare build environment + + - name: Prepare build environment run: mkdir dist - - - name: Compiling To Linux Target + + - name: Compiling To Linux Target run: | cargo build -r mv target/release/${{ github.event.repository.name }} dist/${{ github.event.repository.name }}-linux-amd64 - - - name: Bundle .deb package + + - name: Collect Debian Metadata + id: deb + run: | + DEBIAN_REF=$(cat Cargo.toml | grep -E "(^|\|)version =" | cut -f2- -d= | tr -d \" | tr -d " " | tr - \~) + echo "debian_ref=$DEBIAN_REF" >> $GITHUB_OUTPUT + echo DEBIAN_REF: $DEBIAN_REF + DEBIAN_REV=$(cat Cargo.toml | grep -E "(^|\|)revision =" | cut -f2- -d= | tr -d \" | tr -d " ") + echo "debian_rev=$DEBIAN_REV" >> $GITHUB_OUTPUT + echo DEBIAN_REV: $DEBIAN_REV + DEBIAN_NAME=$(cat Cargo.toml | grep -E "(^|\|)name =" | tail -n1 | cut -f2- -d= | tr -d \" | tr -d " ") + echo "debian_name=$DEBIAN_NAME" >> $GITHUB_OUTPUT + echo DEBIAN_NAME: $DEBIAN_NAME + + - name: Bundle .deb package run: | cargo deb - DEBIAN_REF=$(cat Cargo.toml | grep -E "(^|\|)version =" | cut -f2- -d= | tr -d \" | tr -d " " | tr - \~) - DEBIAN_REV=-$(cat Cargo.toml | grep -E "(^|\|)revision =" | cut -f2- -d= | tr -d \" | tr -d " ") - mv target/debian/${{ DEBIAN_NAME }}_${{ DEBIAN_REF }}${{ DEBIAN_REV }}_amd64.deb dist/${{ DEBIAN_NAME }}_${{ DEBIAN_REF }}${{ DEBIAN_REV }}_amd64.deb - - - name: Uploading Build Artifact + DEBIAN_FILE=$(echo ${{ steps.deb.outputs.debian_name }}_${{ steps.deb.outputs.debian_ref }}-${{ steps.deb.outputs.debian_rev }}_amd64.deb) + echo mv target/debian/$DEBIAN_FILE dist/$DEBIAN_FILE + mv target/debian/$DEBIAN_FILE dist/$DEBIAN_FILE + + - name: Uploading Build Artifact uses: actions/upload-artifact@v3 with: name: release_blobs path: dist - if-no-files-found: error \ No newline at end of file + if-no-files-found: error + + test-env: + needs: build + if: success() + runs-on: docker + steps: + - name: Test Debian Variables + run: | + echo DEBIAN_NAME: ${{ needs.build.outputs.debian_name }} + test -n ${{ needs.build.outputs.debian_name }} + + echo DEBIAN_REF: ${{ needs.build.outputs.debian_ref }} + test -n ${{ needs.build.outputs.debian_ref }} + + echo DEBIAN_REV: ${{ needs.build.outputs.debian_rev }} + test -n ${{ needs.build.outputs.debian_rev }} diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml index 920821d..e50ef78 100644 --- a/.forgejo/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -12,14 +12,13 @@ jobs: runs-on: docker container: forgejo.neshweb.net/ci-docker-images/rust-node:latest steps: - - - name: Add Clippy + - name: Add Clippy run: rustup component add clippy - - - name: Checking Out Repository Code + + - name: Checking Out Repository Code uses: https://code.forgejo.org/actions/checkout@v3 - - - name: Set Up Cargo Cache + + - name: Set Up Cargo Cache uses: actions/cache@v3 with: path: | @@ -29,6 +28,6 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - - name: Run Clippy + + - name: Run Clippy run: cargo clippy \ No newline at end of file