From 341c1d4b331da75ee7a22abb00ef39c7b81c1518 Mon Sep 17 00:00:00 2001 From: Robin Avery Date: Sun, 3 Mar 2024 00:42:24 -0500 Subject: [PATCH] Fix release CI (and add `sccache`) (#52) * Fix release CI (and add `sccache`) * Rename `objdiff-gui` binary to `objdiff` --- .github/workflows/build.yaml | 32 ++++++++++++++++++++++++-------- objdiff-gui/Cargo.toml | 4 ++++ 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5da61bf..3c32759 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -117,6 +117,8 @@ jobs: run: | sudo apt-get update sudo apt-get -y install ${{ matrix.packages }} + - name: Run sccache-cache + uses: mozilla-actions/sccache-action@v0.0.3 - name: Checkout uses: actions/checkout@v4 - name: Setup Rust toolchain @@ -124,9 +126,12 @@ jobs: with: targets: ${{ matrix.target }} - name: Cargo build + env: + SCCACHE_GHA_ENABLED: "true" + RUSTC_WRAPPER: "sccache" run: > cargo build --profile ${{ env.BUILD_PROFILE }} --target ${{ matrix.target }} - --bin objdiff-cli --bin objdiff-gui --features ${{ matrix.features }} + --bin objdiff-cli --bin objdiff --features ${{ matrix.features }} - name: Upload artifacts uses: actions/upload-artifact@v4 with: @@ -134,8 +139,8 @@ jobs: path: | ${{ env.CARGO_TARGET_DIR }}/${{ matrix.target }}/${{ env.BUILD_PROFILE }}/objdiff-cli ${{ env.CARGO_TARGET_DIR }}/${{ matrix.target }}/${{ env.BUILD_PROFILE }}/objdiff-cli.exe - ${{ env.CARGO_TARGET_DIR }}/${{ matrix.target }}/${{ env.BUILD_PROFILE }}/objdiff-gui - ${{ env.CARGO_TARGET_DIR }}/${{ matrix.target }}/${{ env.BUILD_PROFILE }}/objdiff-gui.exe + ${{ env.CARGO_TARGET_DIR }}/${{ matrix.target }}/${{ env.BUILD_PROFILE }}/objdiff + ${{ env.CARGO_TARGET_DIR }}/${{ matrix.target }}/${{ env.BUILD_PROFILE }}/objdiff.exe if-no-files-found: error release: @@ -143,6 +148,8 @@ jobs: if: startsWith(github.ref, 'refs/tags/') runs-on: ubuntu-latest needs: [ build ] + permissions: + contents: write steps: - name: Download artifacts uses: actions/download-artifact@v4 @@ -151,12 +158,21 @@ jobs: - name: Rename artifacts working-directory: artifacts run: | + set -euo pipefail mkdir ../out - for i in */*/$BUILD_PROFILE/objdiff-cli*; do - mv "$i" "../out/$(sed -E "s/([^/]+)\/[^/]+\/$BUILD_PROFILE\/objdiff-cli/objdiff-cli-\1/" <<< "$i")" - done - for i in */*/$BUILD_PROFILE/objdiff-gui*; do - mv "$i" "../out/$(sed -E "s/([^/]+)\/[^/]+\/$BUILD_PROFILE\/objdiff-gui/objdiff-\1/" <<< "$i")" + for dir in */; do + for file in "$dir"*; do + base=$(basename "$file") + name="${base%.*}" + ext="${base##*.}" + if [ "$ext" = "$base" ]; then + ext="" + else + ext=".$ext" + fi + dst="../out/${name}-${dir%/}${ext}" + mv "$file" "$dst" + done done ls -R ../out - name: Release diff --git a/objdiff-gui/Cargo.toml b/objdiff-gui/Cargo.toml index 11c88ed..c7ccb7f 100644 --- a/objdiff-gui/Cargo.toml +++ b/objdiff-gui/Cargo.toml @@ -13,6 +13,10 @@ A local diffing tool for decompilation projects. publish = false build = "build.rs" +[[bin]] +name = "objdiff" +path = "src/main.rs" + [features] default = ["wgpu", "wsl"] wgpu = ["eframe/wgpu"]