name: 'Build binary file and bundle packages' author: 'Neshura' on: pull_request: branches: - main jobs: test: runs-on: docker container: forgejo.neshweb.net/ci-docker-images/rust-node:latest steps: - name: Add Clippy run: rustup component add clippy - name: Checking Out Repository Code uses: https://code.forgejo.org/actions/checkout@v3 - name: Set Up Cargo Cache uses: actions/cache@v3 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Run Clippy run: cargo clippy build: needs: test 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 uses: https://code.forgejo.org/actions/checkout@v3 - name: Prepare build environment run: mkdir dist - 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 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 uses: actions/upload-artifact@v3 with: name: release_blobs path: dist if-no-files-found: error test-env: needs: build if: success() runs-on: docker steps: - name: Test Debian Variables run: | test ${{ needs.build.outputs.debian_name }} = $(echo ${{ github.ref_name }} | tr - \~) test ${{ needs.build.outputs.debian_ref }} = $(cat Cargo.toml | grep -E "(^|\|)revision =" | cut -f2- -d= | tr -d \" | tr -d " ") test ${{ needs.build.outputs.debian_rev }} = $(cat Cargo.toml | grep -E "(^|\|)name =" | cut -f2- -d= | tr -d \" | tr -d " ")