From 3569ff32cdf1d3ab52af0925bbd0d9c55d55e3f9 Mon Sep 17 00:00:00 2001 From: Erica Marigold Date: Wed, 25 Dec 2024 20:15:29 +0530 Subject: [PATCH] ci: debug builds action (#15) * chore(actions): create debug build action * chore(actions): remove unneeded targets Also do the following: * Use v4 of artifact upload action * Install Linux-specific build dependencies * Do not include version-management feature while building * Fix cargo build command * Include native mac x86 target instead of cross compilation * chore(actions): fix bad compile command Turns out I hallucinated `--exclude-features` into existence. * chore(actions): add job to shorten github commit SHA * chore(actions): use bash patterns for commit SHA trimming * chore(actions): fix bash pattern syntax being improper * chore(actions): use `tee` to write trimmed version to stdout for debugging * chore(actions): include full semver version including git commit SHA * chore(actions): checkout code first in `get-version` job * chore(actions): write `trimmed_sha` to `GITHUB_OUTPUT` correclty * chore(actions): add name for `get-version` job * chore(actions): make matrix `job-name`s be consistent with release workflow * chore(actions): provide `exe` for windows manually instead of glob Also makes step now error on no matching files. --- .github/workflows/debug.yml | 79 +++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 .github/workflows/debug.yml diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml new file mode 100644 index 0000000..a23a13d --- /dev/null +++ b/.github/workflows/debug.yml @@ -0,0 +1,79 @@ +name: Debug + +on: + push: + pull_request: + +jobs: + get-version: + name: Get build version + runs-on: ubuntu-latest + outputs: + version: v${{ steps.get_version.outputs.value }}+rev.g${{ steps.trim_sha.outputs.trimmed_sha }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Get package version + uses: SebRollen/toml-action@v1.2.0 + id: get_version + with: + file: Cargo.toml + field: package.version + + - name: Trim commit SHA + id: trim_sha + run: | + commit_sha=${{ github.sha }} + echo "trimmed_sha=${commit_sha:0:7}" | tee $GITHUB_OUTPUT + build: + strategy: + matrix: + include: + - job-name: windows-x86_64 + target: x86_64-pc-windows-msvc + runs-on: windows-latest + artifact-name: pesde-debug-${{ needs.get-version.outputs.version }}-windows-x86_64 + + - job-name: linux-x86_64 + target: x86_64-unknown-linux-gnu + runs-on: ubuntu-latest + artifact-name: pesde-debug-${{ needs.get-version.outputs.version }}-linux-x86_64 + + - job-name: macos-x86_64 + target: x86_64-apple-darwin + runs-on: macos-13 + artifact-name: pesde-debug-${{ needs.get-version.outputs.version }}-macos-x86_64 + + - job-name: macos-aarch64 + target: aarch64-apple-darwin + runs-on: macos-latest + artifact-name: pesde-debug-${{ needs.get-version.outputs.version }}-macos-aarch64 + + name: Build for ${{ matrix.job-name }} + runs-on: ${{ matrix.runs-on }} + needs: get-version + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Linux build dependencies + if: ${{ matrix.runs-on == 'ubuntu-latest' }} + run: | + sudo apt-get update + sudo apt-get install libdbus-1-dev pkg-config + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Compile in debug mode + run: cargo build --bins --no-default-features --features bin,patches,wally-compat --target ${{ matrix.target }} --locked + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.artifact-name }} + if-no-files-found: error + path: | + target/${{ matrix.target }}/debug/pesde.exe + target/${{ matrix.target }}/debug/pesde