From 908e8d7dde672282917bd001c02048d32c525c4c Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Thu, 15 May 2025 12:11:04 -0400 Subject: [PATCH 01/22] Build on all supported platforms in standard CI run --- .github/workflows/build-binaries.yml | 105 ++++++++++++++++++ .github/workflows/publish.yml | 54 +++------ .../workflows/script-runner.rust.default.yml | 7 ++ 3 files changed, 127 insertions(+), 39 deletions(-) create mode 100644 .github/workflows/build-binaries.yml diff --git a/.github/workflows/build-binaries.yml b/.github/workflows/build-binaries.yml new file mode 100644 index 00000000..82d0326c --- /dev/null +++ b/.github/workflows/build-binaries.yml @@ -0,0 +1,105 @@ +name: Build Binaries + +on: + workflow_call: + inputs: + tag_name: + description: "Tag name for release builds" + required: false + type: string + is_release: + description: "Whether this is a release build" + required: true + type: boolean + default: false + outputs: + linux_x86_64: + description: "Linux x86_64 binary path" + value: ${{ jobs.build.outputs.linux_x86_64 }} + linux_arm64: + description: "Linux ARM64 binary path" + value: ${{ jobs.build.outputs.linux_arm64 }} + macos_x86_64: + description: "macOS x86_64 binary path" + value: ${{ jobs.build.outputs.macos_x86_64 }} + macos_arm64: + description: "macOS ARM64 binary path" + value: ${{ jobs.build.outputs.macos_arm64 }} + windows_x86_64: + description: "Windows x86_64 binary path" + value: ${{ jobs.build.outputs.windows_x86_64 }} + +jobs: + build: + name: Build + runs-on: ${{ matrix.os }} + outputs: + linux_x86_64: ${{ steps.build.outputs.linux_x86_64 }} + linux_arm64: ${{ steps.build.outputs.linux_arm64 }} + macos_x86_64: ${{ steps.build.outputs.macos_x86_64 }} + macos_arm64: ${{ steps.build.outputs.macos_arm64 }} + windows_x86_64: ${{ steps.build.outputs.windows_x86_64 }} + strategy: + matrix: + include: + - name: linux + os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems + path: target/x86_64-unknown-linux-gnu/release/function-runner + asset_name: function-runner-x86_64-linux-${{ inputs.is_release && (inputs.tag_name || github.event.release.tag_name) || 'test' }} + shasum_cmd: sha256sum + target: x86_64-unknown-linux-gnu + output_var: linux_x86_64 + - name: linux-arm64 + os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems + path: target/aarch64-unknown-linux-gnu/release/function-runner + asset_name: function-runner-arm-linux-${{ inputs.is_release && (inputs.tag_name || github.event.release.tag_name) || 'test' }} + shasum_cmd: sha256sum + target: aarch64-unknown-linux-gnu + output_var: linux_arm64 + - name: macos + os: macos-latest + path: target/x86_64-apple-darwin/release/function-runner + asset_name: function-runner-x86_64-macos-${{ inputs.is_release && (inputs.tag_name || github.event.release.tag_name) || 'test' }} + shasum_cmd: shasum -a 256 + target: x86_64-apple-darwin + output_var: macos_x86_64 + - name: arm64-macos + os: macos-latest + path: target/aarch64-apple-darwin/release/function-runner + asset_name: function-runner-arm-macos-${{ inputs.is_release && (inputs.tag_name || github.event.release.tag_name) || 'test' }} + shasum_cmd: shasum -a 256 + target: aarch64-apple-darwin + output_var: macos_arm64 + - name: windows + os: windows-latest + path: target\x86_64-pc-windows-msvc\release\function-runner.exe + asset_name: function-runner-x86_64-windows-${{ inputs.is_release && (inputs.tag_name || github.event.release.tag_name) || 'test' }} + shasum_cmd: sha256sum + target: x86_64-pc-windows-msvc + output_var: windows_x86_64 + + steps: + - uses: actions/checkout@v4 + + - name: Install cross compiler + if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }} + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu + + - name: Set up cross compiler env variables + if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }} + run: | + echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV + + # Should no-op except for macos-arm case where that target won't be installed + - name: Install target + run: rustup target add ${{ matrix.target }} + + - name: Build ${{ matrix.target }} + id: build + run: | + cargo build --release --target ${{ matrix.target }} --package function-runner + echo "${{ matrix.output_var }}=${{ matrix.path }}" >> $GITHUB_OUTPUT \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 99dfb6ba..5aa42407 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -12,66 +12,42 @@ on: type: string jobs: - compile: - name: Compile + build: + name: Build + uses: ./.github/workflows/build-binaries.yml + with: + tag_name: ${{ inputs.tag_name || github.event.release.tag_name }} + is_release: true + + publish: + name: Publish + needs: build runs-on: ${{ matrix.os }} strategy: matrix: include: - name: linux - os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems - path: target/x86_64-unknown-linux-gnu/release/function-runner + path: ${{ needs.build.outputs.linux_x86_64 }} asset_name: function-runner-x86_64-linux-${{ inputs.tag_name || github.event.release.tag_name }} shasum_cmd: sha256sum - target: x86_64-unknown-linux-gnu - name: linux-arm64 - os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems - path: target/aarch64-unknown-linux-gnu/release/function-runner + path: ${{ needs.build.outputs.linux_arm64 }} asset_name: function-runner-arm-linux-${{ inputs.tag_name || github.event.release.tag_name }} shasum_cmd: sha256sum - target: aarch64-unknown-linux-gnu - name: macos - os: macos-latest - path: target/x86_64-apple-darwin/release/function-runner + path: ${{ needs.build.outputs.macos_x86_64 }} asset_name: function-runner-x86_64-macos-${{ inputs.tag_name || github.event.release.tag_name }} shasum_cmd: shasum -a 256 - target: x86_64-apple-darwin - name: arm64-macos - os: macos-latest - path: target/aarch64-apple-darwin/release/function-runner + path: ${{ needs.build.outputs.macos_arm64 }} asset_name: function-runner-arm-macos-${{ inputs.tag_name || github.event.release.tag_name }} shasum_cmd: shasum -a 256 - target: aarch64-apple-darwin - name: windows - os: windows-latest - path: target\x86_64-pc-windows-msvc\release\function-runner.exe + path: ${{ needs.build.outputs.windows_x86_64 }} asset_name: function-runner-x86_64-windows-${{ inputs.tag_name || github.event.release.tag_name }} shasum_cmd: sha256sum - target: x86_64-pc-windows-msvc steps: - - uses: actions/checkout@v4 - - - name: Install cross compiler - if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }} - run: | - sudo apt-get update - sudo apt-get install -y gcc-aarch64-linux-gnu - - - name: Set up cross compiler env variables - if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }} - run: | - echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV - - # Should no-op except for macos-arm case where that target won't be installed - - name: Install target - run: rustup target add ${{ matrix.target }} - - - name: Build ${{ matrix.target }} - run: cargo build --release --target ${{ matrix.target }} --package function-runner - - name: Archive assets run: gzip -k -f ${{ matrix.path }} && mv ${{ matrix.path }}.gz ${{ matrix.asset_name }}.gz diff --git a/.github/workflows/script-runner.rust.default.yml b/.github/workflows/script-runner.rust.default.yml index 368ef3f5..28c73d7e 100644 --- a/.github/workflows/script-runner.rust.default.yml +++ b/.github/workflows/script-runner.rust.default.yml @@ -48,3 +48,10 @@ jobs: toolchain: stable components: clippy - run: cargo clippy -- -D warnings + + build: + name: Build + needs: [check, test, fmt, clippy] + uses: ./.github/workflows/build-binaries.yml + with: + is_release: false From 68e1488404df438fe8e8f0fb0db0ed9e97600df9 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Thu, 15 May 2025 13:12:23 -0400 Subject: [PATCH 02/22] build is done in parallel with other jobs --- .github/workflows/script-runner.rust.default.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/script-runner.rust.default.yml b/.github/workflows/script-runner.rust.default.yml index 28c73d7e..69200c37 100644 --- a/.github/workflows/script-runner.rust.default.yml +++ b/.github/workflows/script-runner.rust.default.yml @@ -51,7 +51,6 @@ jobs: build: name: Build - needs: [check, test, fmt, clippy] uses: ./.github/workflows/build-binaries.yml with: is_release: false From 5aad2259ce7bfd69d4171e3da6f334a9de9e8ecb Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 16 May 2025 11:14:35 -0400 Subject: [PATCH 03/22] fixed formatting, removed unneeded fields from matrix variables --- .github/workflows/build-binaries.yml | 42 +++++------------- .github/workflows/publish.yml | 43 +++++++++---------- .../workflows/script-runner.rust.default.yml | 8 ++-- 3 files changed, 34 insertions(+), 59 deletions(-) diff --git a/.github/workflows/build-binaries.yml b/.github/workflows/build-binaries.yml index 82d0326c..ae765055 100644 --- a/.github/workflows/build-binaries.yml +++ b/.github/workflows/build-binaries.yml @@ -2,16 +2,6 @@ name: Build Binaries on: workflow_call: - inputs: - tag_name: - description: "Tag name for release builds" - required: false - type: string - is_release: - description: "Whether this is a release build" - required: true - type: boolean - default: false outputs: linux_x86_64: description: "Linux x86_64 binary path" @@ -42,53 +32,43 @@ jobs: strategy: matrix: include: - - name: linux + - name: x86_64-unknown-linux-gnu os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems path: target/x86_64-unknown-linux-gnu/release/function-runner - asset_name: function-runner-x86_64-linux-${{ inputs.is_release && (inputs.tag_name || github.event.release.tag_name) || 'test' }} shasum_cmd: sha256sum - target: x86_64-unknown-linux-gnu output_var: linux_x86_64 - - name: linux-arm64 + - name: aarch64-unknown-linux-gnu os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems path: target/aarch64-unknown-linux-gnu/release/function-runner - asset_name: function-runner-arm-linux-${{ inputs.is_release && (inputs.tag_name || github.event.release.tag_name) || 'test' }} shasum_cmd: sha256sum - target: aarch64-unknown-linux-gnu output_var: linux_arm64 - - name: macos + - name: x86_64-apple-darwin os: macos-latest path: target/x86_64-apple-darwin/release/function-runner - asset_name: function-runner-x86_64-macos-${{ inputs.is_release && (inputs.tag_name || github.event.release.tag_name) || 'test' }} shasum_cmd: shasum -a 256 - target: x86_64-apple-darwin output_var: macos_x86_64 - - name: arm64-macos + - name: aarch64-apple-darwin os: macos-latest path: target/aarch64-apple-darwin/release/function-runner - asset_name: function-runner-arm-macos-${{ inputs.is_release && (inputs.tag_name || github.event.release.tag_name) || 'test' }} shasum_cmd: shasum -a 256 - target: aarch64-apple-darwin output_var: macos_arm64 - - name: windows + - name: x86_64-pc-windows-msvc os: windows-latest path: target\x86_64-pc-windows-msvc\release\function-runner.exe - asset_name: function-runner-x86_64-windows-${{ inputs.is_release && (inputs.tag_name || github.event.release.tag_name) || 'test' }} shasum_cmd: sha256sum - target: x86_64-pc-windows-msvc output_var: windows_x86_64 steps: - uses: actions/checkout@v4 - name: Install cross compiler - if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }} + if: ${{ matrix.name == 'aarch64-unknown-linux-gnu' }} run: | sudo apt-get update sudo apt-get install -y gcc-aarch64-linux-gnu - name: Set up cross compiler env variables - if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }} + if: ${{ matrix.name == 'aarch64-unknown-linux-gnu' }} run: | echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV @@ -96,10 +76,10 @@ jobs: # Should no-op except for macos-arm case where that target won't be installed - name: Install target - run: rustup target add ${{ matrix.target }} + run: rustup target add ${{ matrix.name }} - - name: Build ${{ matrix.target }} + - name: Build ${{ matrix.name }} id: build run: | - cargo build --release --target ${{ matrix.target }} --package function-runner - echo "${{ matrix.output_var }}=${{ matrix.path }}" >> $GITHUB_OUTPUT \ No newline at end of file + cargo build --release --target ${{ matrix.name }} --package function-runner + echo "${{ matrix.output_var }}=${{ matrix.path }}" >> $GITHUB_OUTPUT diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5aa42407..01e8eade 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -15,9 +15,6 @@ jobs: build: name: Build uses: ./.github/workflows/build-binaries.yml - with: - tag_name: ${{ inputs.tag_name || github.event.release.tag_name }} - is_release: true publish: name: Publish @@ -51,27 +48,27 @@ jobs: - name: Archive assets run: gzip -k -f ${{ matrix.path }} && mv ${{ matrix.path }}.gz ${{ matrix.asset_name }}.gz - - name: Upload assets to artifacts - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.asset_name }}.gz - path: ${{ matrix.asset_name }}.gz + # - name: Upload assets to artifacts + # uses: actions/upload-artifact@v4 + # with: + # name: ${{ matrix.asset_name }}.gz + # path: ${{ matrix.asset_name }}.gz - - name: Upload assets to release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz + # - name: Upload assets to release + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz - - name: Generate asset hash - run: ${{ matrix.shasum_cmd }} ${{ matrix.asset_name }}.gz | awk '{ print $1 }' > ${{ matrix.asset_name }}.gz.sha256 + # - name: Generate asset hash + # run: ${{ matrix.shasum_cmd }} ${{ matrix.asset_name }}.gz | awk '{ print $1 }' > ${{ matrix.asset_name }}.gz.sha256 - - name: Upload asset hash to artifacts - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.asset_name }}.gz.sha256 - path: ${{ matrix.asset_name }}.gz.sha256 + # - name: Upload asset hash to artifacts + # uses: actions/upload-artifact@v4 + # with: + # name: ${{ matrix.asset_name }}.gz.sha256 + # path: ${{ matrix.asset_name }}.gz.sha256 - - name: Upload asset hash to release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz.sha256 + # - name: Upload asset hash to release + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz.sha256 diff --git a/.github/workflows/script-runner.rust.default.yml b/.github/workflows/script-runner.rust.default.yml index 69200c37..f0cf7b64 100644 --- a/.github/workflows/script-runner.rust.default.yml +++ b/.github/workflows/script-runner.rust.default.yml @@ -2,9 +2,9 @@ name: Rust on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] + branches: [main] jobs: check: @@ -48,9 +48,7 @@ jobs: toolchain: stable components: clippy - run: cargo clippy -- -D warnings - + build: name: Build uses: ./.github/workflows/build-binaries.yml - with: - is_release: false From b366d8d9ef9925f7efe7cefcd4433d3e367d29ed Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 16 May 2025 11:45:55 -0400 Subject: [PATCH 04/22] test publish workflow --- .github/workflows/publish.yml | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 01e8eade..54fe6263 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -23,26 +23,31 @@ jobs: strategy: matrix: include: - - name: linux - path: ${{ needs.build.outputs.linux_x86_64 }} - asset_name: function-runner-x86_64-linux-${{ inputs.tag_name || github.event.release.tag_name }} + - name: x86_64-unknown-linux-gnu + os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems + path: target/x86_64-unknown-linux-gnu/release/function-runner shasum_cmd: sha256sum - - name: linux-arm64 - path: ${{ needs.build.outputs.linux_arm64 }} - asset_name: function-runner-arm-linux-${{ inputs.tag_name || github.event.release.tag_name }} + output_var: linux_x86_64 + - name: aarch64-unknown-linux-gnu + os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems + path: target/aarch64-unknown-linux-gnu/release/function-runner shasum_cmd: sha256sum - - name: macos - path: ${{ needs.build.outputs.macos_x86_64 }} - asset_name: function-runner-x86_64-macos-${{ inputs.tag_name || github.event.release.tag_name }} + output_var: linux_arm64 + - name: x86_64-apple-darwin + os: macos-latest + path: target/x86_64-apple-darwin/release/function-runner shasum_cmd: shasum -a 256 - - name: arm64-macos - path: ${{ needs.build.outputs.macos_arm64 }} - asset_name: function-runner-arm-macos-${{ inputs.tag_name || github.event.release.tag_name }} + output_var: macos_x86_64 + - name: aarch64-apple-darwin + os: macos-latest + path: target/aarch64-apple-darwin/release/function-runner shasum_cmd: shasum -a 256 - - name: windows - path: ${{ needs.build.outputs.windows_x86_64 }} - asset_name: function-runner-x86_64-windows-${{ inputs.tag_name || github.event.release.tag_name }} + output_var: macos_arm64 + - name: x86_64-pc-windows-msvc + os: windows-latest + path: target\x86_64-pc-windows-msvc\release\function-runner.exe shasum_cmd: sha256sum + output_var: windows_x86_64 steps: - name: Archive assets From de995c2a6e7b7bbbd4175ca730fe440ff8a1f3e1 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 16 May 2025 12:09:39 -0400 Subject: [PATCH 05/22] Consolidated building and publishing into one workflow --- .github/workflows/build-and-publish.yml | 157 ++++++++++++++++++ .github/workflows/build-binaries.yml | 85 ---------- .github/workflows/publish.yml | 79 --------- .../workflows/script-runner.rust.default.yml | 54 ------ 4 files changed, 157 insertions(+), 218 deletions(-) create mode 100644 .github/workflows/build-and-publish.yml delete mode 100644 .github/workflows/build-binaries.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/script-runner.rust.default.yml diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml new file mode 100644 index 00000000..47eee98c --- /dev/null +++ b/.github/workflows/build-and-publish.yml @@ -0,0 +1,157 @@ +name: Build and Publish + +on: + push: + branches: [main] + pull_request: + branches: [main] + release: + types: + - published + workflow_dispatch: + inputs: + tag_name: + description: "Tag name" + required: true + type: string + should_publish: + description: "Whether to publish the release" + required: true + type: boolean + +jobs: + check: + name: Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b + with: + toolchain: stable + - run: cargo check + + test: + name: Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b + with: + toolchain: stable + - run: cargo test + + fmt: + name: Format + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b + with: + toolchain: stable + components: rustfmt + - run: cargo fmt --all -- --check + + clippy: + name: Clippy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b + with: + toolchain: stable + components: clippy + - run: cargo clippy -- -D warnings + + build-and-publish: + name: Build and Publish + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - name: linux + os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems + path: target/x86_64-unknown-linux-gnu/release/function-runner + asset_name: function-runner-x86_64-linux-${{ inputs.tag_name || github.event.release.tag_name }} + shasum_cmd: sha256sum + target: x86_64-unknown-linux-gnu + - name: linux-arm64 + os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems + path: target/aarch64-unknown-linux-gnu/release/function-runner + asset_name: function-runner-arm-linux-${{ inputs.tag_name || github.event.release.tag_name }} + shasum_cmd: sha256sum + target: aarch64-unknown-linux-gnu + - name: macos + os: macos-latest + path: target/x86_64-apple-darwin/release/function-runner + asset_name: function-runner-x86_64-macos-${{ inputs.tag_name || github.event.release.tag_name }} + shasum_cmd: shasum -a 256 + target: x86_64-apple-darwin + - name: arm64-macos + os: macos-latest + path: target/aarch64-apple-darwin/release/function-runner + asset_name: function-runner-arm-macos-${{ inputs.tag_name || github.event.release.tag_name }} + shasum_cmd: shasum -a 256 + target: aarch64-apple-darwin + - name: windows + os: windows-latest + path: target\x86_64-pc-windows-msvc\release\function-runner.exe + asset_name: function-runner-x86_64-windows-${{ inputs.tag_name || github.event.release.tag_name }} + shasum_cmd: sha256sum + target: x86_64-pc-windows-msvc + + steps: + - uses: actions/checkout@v4 + + - name: Install cross compiler + if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }} + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu + + - name: Set up cross compiler env variables + if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }} + run: | + echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV + + # Should no-op except for macos-arm case where that target won't be installed + - name: Install target + run: rustup target add ${{ matrix.target }} + + - name: Build ${{ matrix.target }} + run: cargo build --release --target ${{ matrix.target }} --package function-runner + + - name: Archive assets + if: ${{ inputs.should_publish }} + run: gzip -k -f ${{ matrix.path }} && mv ${{ matrix.path }}.gz ${{ matrix.asset_name }}.gz + + - name: Upload assets to artifacts + if: ${{ inputs.should_publish }} + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.asset_name }}.gz + path: ${{ matrix.asset_name }}.gz + + - name: Upload assets to release + if: ${{ inputs.should_publish }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz + + - name: Generate asset hash + if: ${{ inputs.should_publish }} + run: ${{ matrix.shasum_cmd }} ${{ matrix.asset_name }}.gz | awk '{ print $1 }' > ${{ matrix.asset_name }}.gz.sha256 + + - name: Upload asset hash to artifacts + if: ${{ inputs.should_publish }} + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.asset_name }}.gz.sha256 + path: ${{ matrix.asset_name }}.gz.sha256 + + - name: Upload asset hash to release + if: ${{ inputs.should_publish }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz.sha256 diff --git a/.github/workflows/build-binaries.yml b/.github/workflows/build-binaries.yml deleted file mode 100644 index ae765055..00000000 --- a/.github/workflows/build-binaries.yml +++ /dev/null @@ -1,85 +0,0 @@ -name: Build Binaries - -on: - workflow_call: - outputs: - linux_x86_64: - description: "Linux x86_64 binary path" - value: ${{ jobs.build.outputs.linux_x86_64 }} - linux_arm64: - description: "Linux ARM64 binary path" - value: ${{ jobs.build.outputs.linux_arm64 }} - macos_x86_64: - description: "macOS x86_64 binary path" - value: ${{ jobs.build.outputs.macos_x86_64 }} - macos_arm64: - description: "macOS ARM64 binary path" - value: ${{ jobs.build.outputs.macos_arm64 }} - windows_x86_64: - description: "Windows x86_64 binary path" - value: ${{ jobs.build.outputs.windows_x86_64 }} - -jobs: - build: - name: Build - runs-on: ${{ matrix.os }} - outputs: - linux_x86_64: ${{ steps.build.outputs.linux_x86_64 }} - linux_arm64: ${{ steps.build.outputs.linux_arm64 }} - macos_x86_64: ${{ steps.build.outputs.macos_x86_64 }} - macos_arm64: ${{ steps.build.outputs.macos_arm64 }} - windows_x86_64: ${{ steps.build.outputs.windows_x86_64 }} - strategy: - matrix: - include: - - name: x86_64-unknown-linux-gnu - os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems - path: target/x86_64-unknown-linux-gnu/release/function-runner - shasum_cmd: sha256sum - output_var: linux_x86_64 - - name: aarch64-unknown-linux-gnu - os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems - path: target/aarch64-unknown-linux-gnu/release/function-runner - shasum_cmd: sha256sum - output_var: linux_arm64 - - name: x86_64-apple-darwin - os: macos-latest - path: target/x86_64-apple-darwin/release/function-runner - shasum_cmd: shasum -a 256 - output_var: macos_x86_64 - - name: aarch64-apple-darwin - os: macos-latest - path: target/aarch64-apple-darwin/release/function-runner - shasum_cmd: shasum -a 256 - output_var: macos_arm64 - - name: x86_64-pc-windows-msvc - os: windows-latest - path: target\x86_64-pc-windows-msvc\release\function-runner.exe - shasum_cmd: sha256sum - output_var: windows_x86_64 - - steps: - - uses: actions/checkout@v4 - - - name: Install cross compiler - if: ${{ matrix.name == 'aarch64-unknown-linux-gnu' }} - run: | - sudo apt-get update - sudo apt-get install -y gcc-aarch64-linux-gnu - - - name: Set up cross compiler env variables - if: ${{ matrix.name == 'aarch64-unknown-linux-gnu' }} - run: | - echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV - - # Should no-op except for macos-arm case where that target won't be installed - - name: Install target - run: rustup target add ${{ matrix.name }} - - - name: Build ${{ matrix.name }} - id: build - run: | - cargo build --release --target ${{ matrix.name }} --package function-runner - echo "${{ matrix.output_var }}=${{ matrix.path }}" >> $GITHUB_OUTPUT diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml deleted file mode 100644 index 54fe6263..00000000 --- a/.github/workflows/publish.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Publish - -on: - release: - types: - - published - workflow_dispatch: - inputs: - tag_name: - description: "Tag name" - required: true - type: string - -jobs: - build: - name: Build - uses: ./.github/workflows/build-binaries.yml - - publish: - name: Publish - needs: build - runs-on: ${{ matrix.os }} - strategy: - matrix: - include: - - name: x86_64-unknown-linux-gnu - os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems - path: target/x86_64-unknown-linux-gnu/release/function-runner - shasum_cmd: sha256sum - output_var: linux_x86_64 - - name: aarch64-unknown-linux-gnu - os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems - path: target/aarch64-unknown-linux-gnu/release/function-runner - shasum_cmd: sha256sum - output_var: linux_arm64 - - name: x86_64-apple-darwin - os: macos-latest - path: target/x86_64-apple-darwin/release/function-runner - shasum_cmd: shasum -a 256 - output_var: macos_x86_64 - - name: aarch64-apple-darwin - os: macos-latest - path: target/aarch64-apple-darwin/release/function-runner - shasum_cmd: shasum -a 256 - output_var: macos_arm64 - - name: x86_64-pc-windows-msvc - os: windows-latest - path: target\x86_64-pc-windows-msvc\release\function-runner.exe - shasum_cmd: sha256sum - output_var: windows_x86_64 - - steps: - - name: Archive assets - run: gzip -k -f ${{ matrix.path }} && mv ${{ matrix.path }}.gz ${{ matrix.asset_name }}.gz - - # - name: Upload assets to artifacts - # uses: actions/upload-artifact@v4 - # with: - # name: ${{ matrix.asset_name }}.gz - # path: ${{ matrix.asset_name }}.gz - - # - name: Upload assets to release - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz - - # - name: Generate asset hash - # run: ${{ matrix.shasum_cmd }} ${{ matrix.asset_name }}.gz | awk '{ print $1 }' > ${{ matrix.asset_name }}.gz.sha256 - - # - name: Upload asset hash to artifacts - # uses: actions/upload-artifact@v4 - # with: - # name: ${{ matrix.asset_name }}.gz.sha256 - # path: ${{ matrix.asset_name }}.gz.sha256 - - # - name: Upload asset hash to release - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz.sha256 diff --git a/.github/workflows/script-runner.rust.default.yml b/.github/workflows/script-runner.rust.default.yml deleted file mode 100644 index f0cf7b64..00000000 --- a/.github/workflows/script-runner.rust.default.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Rust - -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - check: - name: Check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b - with: - toolchain: stable - - run: cargo check - - test: - name: Test - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b - with: - toolchain: stable - - run: cargo test - - fmt: - name: Format - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b - with: - toolchain: stable - components: rustfmt - - run: cargo fmt --all -- --check - - clippy: - name: Clippy - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b - with: - toolchain: stable - components: clippy - - run: cargo clippy -- -D warnings - - build: - name: Build - uses: ./.github/workflows/build-binaries.yml From b16f58008cffa3e5fd2d0853d294577133116bbe Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 16 May 2025 14:31:07 -0400 Subject: [PATCH 06/22] reverted to old design with should_publish variable introduced --- .github/workflows/build-and-publish.yml | 134 ++++++------------ .github/workflows/publish.yml | 19 +++ .../workflows/script-runner.rust.default.yml | 58 ++++++++ 3 files changed, 117 insertions(+), 94 deletions(-) create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/script-runner.rust.default.yml diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 47eee98c..ef61f49a 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -1,14 +1,7 @@ name: Build and Publish on: - push: - branches: [main] - pull_request: - branches: [main] - release: - types: - - published - workflow_dispatch: + workflow_call: inputs: tag_name: description: "Tag name" @@ -20,96 +13,49 @@ on: type: boolean jobs: - check: - name: Check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b - with: - toolchain: stable - - run: cargo check - - test: - name: Test - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b - with: - toolchain: stable - - run: cargo test - - fmt: - name: Format - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b - with: - toolchain: stable - components: rustfmt - - run: cargo fmt --all -- --check - - clippy: - name: Clippy - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b - with: - toolchain: stable - components: clippy - - run: cargo clippy -- -D warnings - build-and-publish: name: Build and Publish runs-on: ${{ matrix.os }} strategy: matrix: include: - - name: linux + - name: x86_64-unknown-linux-gnu os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems path: target/x86_64-unknown-linux-gnu/release/function-runner asset_name: function-runner-x86_64-linux-${{ inputs.tag_name || github.event.release.tag_name }} shasum_cmd: sha256sum - target: x86_64-unknown-linux-gnu - - name: linux-arm64 + - name: aarch64-unknown-linux-gnu os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems path: target/aarch64-unknown-linux-gnu/release/function-runner asset_name: function-runner-arm-linux-${{ inputs.tag_name || github.event.release.tag_name }} shasum_cmd: sha256sum - target: aarch64-unknown-linux-gnu - - name: macos + - name: x86_64-apple-darwin os: macos-latest path: target/x86_64-apple-darwin/release/function-runner asset_name: function-runner-x86_64-macos-${{ inputs.tag_name || github.event.release.tag_name }} shasum_cmd: shasum -a 256 - target: x86_64-apple-darwin - - name: arm64-macos + - name: aarch64-apple-darwin os: macos-latest path: target/aarch64-apple-darwin/release/function-runner asset_name: function-runner-arm-macos-${{ inputs.tag_name || github.event.release.tag_name }} shasum_cmd: shasum -a 256 - target: aarch64-apple-darwin - - name: windows + - name: x86_64-pc-windows-msvc os: windows-latest path: target\x86_64-pc-windows-msvc\release\function-runner.exe asset_name: function-runner-x86_64-windows-${{ inputs.tag_name || github.event.release.tag_name }} shasum_cmd: sha256sum - target: x86_64-pc-windows-msvc steps: - uses: actions/checkout@v4 - name: Install cross compiler - if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }} + if: ${{ matrix.name == 'aarch64-unknown-linux-gnu' }} run: | sudo apt-get update sudo apt-get install -y gcc-aarch64-linux-gnu - name: Set up cross compiler env variables - if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }} + if: ${{ matrix.name == 'aarch64-unknown-linux-gnu' }} run: | echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV @@ -117,41 +63,41 @@ jobs: # Should no-op except for macos-arm case where that target won't be installed - name: Install target - run: rustup target add ${{ matrix.target }} + run: rustup target add ${{ matrix.name }} - - name: Build ${{ matrix.target }} - run: cargo build --release --target ${{ matrix.target }} --package function-runner + - name: Build ${{ matrix.name }} + run: cargo build --release --target ${{ matrix.name }} --package function-runner - name: Archive assets if: ${{ inputs.should_publish }} run: gzip -k -f ${{ matrix.path }} && mv ${{ matrix.path }}.gz ${{ matrix.asset_name }}.gz - - name: Upload assets to artifacts - if: ${{ inputs.should_publish }} - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.asset_name }}.gz - path: ${{ matrix.asset_name }}.gz - - - name: Upload assets to release - if: ${{ inputs.should_publish }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz - - - name: Generate asset hash - if: ${{ inputs.should_publish }} - run: ${{ matrix.shasum_cmd }} ${{ matrix.asset_name }}.gz | awk '{ print $1 }' > ${{ matrix.asset_name }}.gz.sha256 - - - name: Upload asset hash to artifacts - if: ${{ inputs.should_publish }} - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.asset_name }}.gz.sha256 - path: ${{ matrix.asset_name }}.gz.sha256 - - - name: Upload asset hash to release - if: ${{ inputs.should_publish }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz.sha256 + # - name: Upload assets to artifacts + # if: ${{ inputs.should_publish }} + # uses: actions/upload-artifact@v4 + # with: + # name: ${{ matrix.asset_name }}.gz + # path: ${{ matrix.asset_name }}.gz + + # - name: Upload assets to release + # if: ${{ inputs.should_publish }} + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz + + # - name: Generate asset hash + # if: ${{ inputs.should_publish }} + # run: ${{ matrix.shasum_cmd }} ${{ matrix.asset_name }}.gz | awk '{ print $1 }' > ${{ matrix.asset_name }}.gz.sha256 + + # - name: Upload asset hash to artifacts + # if: ${{ inputs.should_publish }} + # uses: actions/upload-artifact@v4 + # with: + # name: ${{ matrix.asset_name }}.gz.sha256 + # path: ${{ matrix.asset_name }}.gz.sha256 + + # - name: Upload asset hash to release + # if: ${{ inputs.should_publish }} + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz.sha256 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..36801ce1 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,19 @@ +name: Publish + +on: + release: + types: + - published + workflow_dispatch: + inputs: + tag_name: + description: "Tag name" + required: true + type: string + +jobs: + build-and-publish: + uses: ./.github/workflows/build-and-publish.yml + with: + should_publish: true + tag_name: ${{ github.event.release.tag_name }} diff --git a/.github/workflows/script-runner.rust.default.yml b/.github/workflows/script-runner.rust.default.yml new file mode 100644 index 00000000..e387fe22 --- /dev/null +++ b/.github/workflows/script-runner.rust.default.yml @@ -0,0 +1,58 @@ +name: Rust + +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: + +jobs: + check: + name: Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b + with: + toolchain: stable + - run: cargo check + + test: + name: Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b + with: + toolchain: stable + - run: cargo test + + fmt: + name: Format + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b + with: + toolchain: stable + components: rustfmt + - run: cargo fmt --all -- --check + + clippy: + name: Clippy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b + with: + toolchain: stable + components: clippy + - run: cargo clippy -- -D warnings + + build: + name: Build + uses: ./.github/workflows/build-and-publish.yml + with: + should_publish: false + tag_name: "standard-workflow" From d90adcd35c26c7fd2be84138f5f3b1159c4746ff Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 16 May 2025 15:41:12 -0400 Subject: [PATCH 07/22] removed instances of github.event.release.tag_name from build-and-publish.yml --- .github/workflows/build-and-publish.yml | 14 +++++++------- .github/workflows/publish.yml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index ef61f49a..1235496c 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -22,27 +22,27 @@ jobs: - name: x86_64-unknown-linux-gnu os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems path: target/x86_64-unknown-linux-gnu/release/function-runner - asset_name: function-runner-x86_64-linux-${{ inputs.tag_name || github.event.release.tag_name }} + asset_name: function-runner-x86_64-linux-${{ inputs.tag_name }} shasum_cmd: sha256sum - name: aarch64-unknown-linux-gnu os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems path: target/aarch64-unknown-linux-gnu/release/function-runner - asset_name: function-runner-arm-linux-${{ inputs.tag_name || github.event.release.tag_name }} + asset_name: function-runner-arm-linux-${{ inputs.tag_name }} shasum_cmd: sha256sum - name: x86_64-apple-darwin os: macos-latest path: target/x86_64-apple-darwin/release/function-runner - asset_name: function-runner-x86_64-macos-${{ inputs.tag_name || github.event.release.tag_name }} + asset_name: function-runner-x86_64-macos-${{ inputs.tag_name }} shasum_cmd: shasum -a 256 - name: aarch64-apple-darwin os: macos-latest path: target/aarch64-apple-darwin/release/function-runner - asset_name: function-runner-arm-macos-${{ inputs.tag_name || github.event.release.tag_name }} + asset_name: function-runner-arm-macos-${{ inputs.tag_name }} shasum_cmd: shasum -a 256 - name: x86_64-pc-windows-msvc os: windows-latest path: target\x86_64-pc-windows-msvc\release\function-runner.exe - asset_name: function-runner-x86_64-windows-${{ inputs.tag_name || github.event.release.tag_name }} + asset_name: function-runner-x86_64-windows-${{ inputs.tag_name }} shasum_cmd: sha256sum steps: @@ -83,7 +83,7 @@ jobs: # if: ${{ inputs.should_publish }} # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz + # run: gh release upload ${{ inputs.tag_name }} ${{ matrix.asset_name }}.gz # - name: Generate asset hash # if: ${{ inputs.should_publish }} @@ -100,4 +100,4 @@ jobs: # if: ${{ inputs.should_publish }} # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # run: gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} ${{ matrix.asset_name }}.gz.sha256 + # run: gh release upload ${{ inputs.tag_name }} ${{ matrix.asset_name }}.gz.sha256 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 36801ce1..37930865 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,4 +16,4 @@ jobs: uses: ./.github/workflows/build-and-publish.yml with: should_publish: true - tag_name: ${{ github.event.release.tag_name }} + tag_name: ${{ inputs.tag_name || github.event.release.tag_name}} From c93df26ec9fff7caefa7437832faf6844c9d018f Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 16 May 2025 15:49:59 -0400 Subject: [PATCH 08/22] removed comments - ready for pr --- .github/workflows/build-and-publish.yml | 50 ++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 1235496c..688a2fe0 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -72,32 +72,32 @@ jobs: if: ${{ inputs.should_publish }} run: gzip -k -f ${{ matrix.path }} && mv ${{ matrix.path }}.gz ${{ matrix.asset_name }}.gz - # - name: Upload assets to artifacts - # if: ${{ inputs.should_publish }} - # uses: actions/upload-artifact@v4 - # with: - # name: ${{ matrix.asset_name }}.gz - # path: ${{ matrix.asset_name }}.gz + - name: Upload assets to artifacts + if: ${{ inputs.should_publish }} + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.asset_name }}.gz + path: ${{ matrix.asset_name }}.gz - # - name: Upload assets to release - # if: ${{ inputs.should_publish }} - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # run: gh release upload ${{ inputs.tag_name }} ${{ matrix.asset_name }}.gz + - name: Upload assets to release + if: ${{ inputs.should_publish }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh release upload ${{ inputs.tag_name }} ${{ matrix.asset_name }}.gz - # - name: Generate asset hash - # if: ${{ inputs.should_publish }} - # run: ${{ matrix.shasum_cmd }} ${{ matrix.asset_name }}.gz | awk '{ print $1 }' > ${{ matrix.asset_name }}.gz.sha256 + - name: Generate asset hash + if: ${{ inputs.should_publish }} + run: ${{ matrix.shasum_cmd }} ${{ matrix.asset_name }}.gz | awk '{ print $1 }' > ${{ matrix.asset_name }}.gz.sha256 - # - name: Upload asset hash to artifacts - # if: ${{ inputs.should_publish }} - # uses: actions/upload-artifact@v4 - # with: - # name: ${{ matrix.asset_name }}.gz.sha256 - # path: ${{ matrix.asset_name }}.gz.sha256 + - name: Upload asset hash to artifacts + if: ${{ inputs.should_publish }} + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.asset_name }}.gz.sha256 + path: ${{ matrix.asset_name }}.gz.sha256 - # - name: Upload asset hash to release - # if: ${{ inputs.should_publish }} - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # run: gh release upload ${{ inputs.tag_name }} ${{ matrix.asset_name }}.gz.sha256 + - name: Upload asset hash to release + if: ${{ inputs.should_publish }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh release upload ${{ inputs.tag_name }} ${{ matrix.asset_name }}.gz.sha256 From e0496384aa80e0e4ddcd93f00fc0ebdfd09bf834 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Tue, 20 May 2025 09:20:42 -0400 Subject: [PATCH 09/22] removed workflow dispatch from default ci triggers --- .github/workflows/script-runner.rust.default.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/script-runner.rust.default.yml b/.github/workflows/script-runner.rust.default.yml index e387fe22..42e303ed 100644 --- a/.github/workflows/script-runner.rust.default.yml +++ b/.github/workflows/script-runner.rust.default.yml @@ -5,7 +5,6 @@ on: branches: [main] pull_request: branches: [main] - workflow_dispatch: jobs: check: From 70c2edfb0dccc19a1a3bac4e0f917eecfbbd9b2f Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Thu, 22 May 2025 14:36:53 -0400 Subject: [PATCH 10/22] refactored workflows: build and publish happen in separate jobs --- .../{build-and-publish.yml => build.yml} | 31 +++------------- .github/workflows/publish.yml | 35 ++++++++++++++++--- .../workflows/script-runner.rust.default.yml | 5 ++- 3 files changed, 38 insertions(+), 33 deletions(-) rename .github/workflows/{build-and-publish.yml => build.yml} (70%) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build.yml similarity index 70% rename from .github/workflows/build-and-publish.yml rename to .github/workflows/build.yml index 688a2fe0..92b61682 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build and Publish +name: Build on: workflow_call: @@ -7,25 +7,21 @@ on: description: "Tag name" required: true type: string - should_publish: - description: "Whether to publish the release" - required: true - type: boolean jobs: - build-and-publish: - name: Build and Publish + build: + name: Build runs-on: ${{ matrix.os }} strategy: matrix: include: - name: x86_64-unknown-linux-gnu - os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems + os: ubuntu-22.04 path: target/x86_64-unknown-linux-gnu/release/function-runner asset_name: function-runner-x86_64-linux-${{ inputs.tag_name }} shasum_cmd: sha256sum - name: aarch64-unknown-linux-gnu - os: ubuntu-22.04 # Use oldest supported non-deprecated version so we link against older glibc version which allows running binary on a wider set of Linux systems + os: ubuntu-22.04 path: target/aarch64-unknown-linux-gnu/release/function-runner asset_name: function-runner-arm-linux-${{ inputs.tag_name }} shasum_cmd: sha256sum @@ -61,7 +57,6 @@ jobs: echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV - # Should no-op except for macos-arm case where that target won't be installed - name: Install target run: rustup target add ${{ matrix.name }} @@ -69,35 +64,19 @@ jobs: run: cargo build --release --target ${{ matrix.name }} --package function-runner - name: Archive assets - if: ${{ inputs.should_publish }} run: gzip -k -f ${{ matrix.path }} && mv ${{ matrix.path }}.gz ${{ matrix.asset_name }}.gz - name: Upload assets to artifacts - if: ${{ inputs.should_publish }} uses: actions/upload-artifact@v4 with: name: ${{ matrix.asset_name }}.gz path: ${{ matrix.asset_name }}.gz - - name: Upload assets to release - if: ${{ inputs.should_publish }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh release upload ${{ inputs.tag_name }} ${{ matrix.asset_name }}.gz - - name: Generate asset hash - if: ${{ inputs.should_publish }} run: ${{ matrix.shasum_cmd }} ${{ matrix.asset_name }}.gz | awk '{ print $1 }' > ${{ matrix.asset_name }}.gz.sha256 - name: Upload asset hash to artifacts - if: ${{ inputs.should_publish }} uses: actions/upload-artifact@v4 with: name: ${{ matrix.asset_name }}.gz.sha256 path: ${{ matrix.asset_name }}.gz.sha256 - - - name: Upload asset hash to release - if: ${{ inputs.should_publish }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh release upload ${{ inputs.tag_name }} ${{ matrix.asset_name }}.gz.sha256 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 37930865..82a22e27 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -12,8 +12,35 @@ on: type: string jobs: - build-and-publish: - uses: ./.github/workflows/build-and-publish.yml + build: + uses: ./.github/workflows/build.yml with: - should_publish: true - tag_name: ${{ inputs.tag_name || github.event.release.tag_name}} + tag_name: ${{ inputs.tag_name || github.event.release.tag_name }} + + publish: + name: Publish + needs: build + runs-on: ubuntu-latest + steps: + - name: Download all artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + + - name: Upload assets to release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # Upload all .gz files + for file in artifacts/function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz; do + if [ -f "$file" ]; then + gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" + fi + done + + # Upload all .gz.sha256 files + for file in artifacts/function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz.sha256; do + if [ -f "$file" ]; then + gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" + fi + done diff --git a/.github/workflows/script-runner.rust.default.yml b/.github/workflows/script-runner.rust.default.yml index 42e303ed..0fc063ce 100644 --- a/.github/workflows/script-runner.rust.default.yml +++ b/.github/workflows/script-runner.rust.default.yml @@ -51,7 +51,6 @@ jobs: build: name: Build - uses: ./.github/workflows/build-and-publish.yml + uses: ./.github/workflows/build.yml with: - should_publish: false - tag_name: "standard-workflow" + tag_name: "ci-build" From 488ac5a2eedab619f07cae20aeff813e72e4c5b6 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Thu, 22 May 2025 14:49:46 -0400 Subject: [PATCH 11/22] commented out lines for testing --- .github/workflows/publish.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 82a22e27..8f3ed490 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -34,13 +34,15 @@ jobs: # Upload all .gz files for file in artifacts/function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz; do if [ -f "$file" ]; then - gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" + echo "Uploading $file" + #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" fi done # Upload all .gz.sha256 files for file in artifacts/function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz.sha256; do if [ -f "$file" ]; then - gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" + echo "Uploading $file" + #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" fi done From 9ce8564689b313501ec204dcc0c88f92e8d4de29 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Thu, 22 May 2025 15:11:52 -0400 Subject: [PATCH 12/22] recursively search artifacts directory instead of looking for files in top level --- .github/workflows/publish.yml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8f3ed490..2b0e1186 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -32,17 +32,13 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | # Upload all .gz files - for file in artifacts/function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz; do - if [ -f "$file" ]; then - echo "Uploading $file" - #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" - fi + find artifacts -name "function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz" -type f | while read file; do + echo "Uploading $file" + #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" done # Upload all .gz.sha256 files - for file in artifacts/function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz.sha256; do - if [ -f "$file" ]; then - echo "Uploading $file" - #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" - fi + find artifacts -name "function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz.sha256" -type f | while read file; do + echo "Uploading $file" + #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" done From 5cba887371514826c038b8091bec65cb16174984 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Thu, 22 May 2025 16:11:41 -0400 Subject: [PATCH 13/22] simplifying artifact directory structure --- .github/workflows/build.yml | 4 ++-- .github/workflows/publish.yml | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 92b61682..01db8101 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -69,7 +69,7 @@ jobs: - name: Upload assets to artifacts uses: actions/upload-artifact@v4 with: - name: ${{ matrix.asset_name }}.gz + name: artifacts path: ${{ matrix.asset_name }}.gz - name: Generate asset hash @@ -78,5 +78,5 @@ jobs: - name: Upload asset hash to artifacts uses: actions/upload-artifact@v4 with: - name: ${{ matrix.asset_name }}.gz.sha256 + name: artifacts path: ${{ matrix.asset_name }}.gz.sha256 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2b0e1186..8f3ed490 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -32,13 +32,17 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | # Upload all .gz files - find artifacts -name "function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz" -type f | while read file; do - echo "Uploading $file" - #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" + for file in artifacts/function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz; do + if [ -f "$file" ]; then + echo "Uploading $file" + #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" + fi done # Upload all .gz.sha256 files - find artifacts -name "function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz.sha256" -type f | while read file; do - echo "Uploading $file" - #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" + for file in artifacts/function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz.sha256; do + if [ -f "$file" ]; then + echo "Uploading $file" + #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" + fi done From 727666930c0ec149d4b66917f6530e764ef5bdd0 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Thu, 22 May 2025 16:25:31 -0400 Subject: [PATCH 14/22] simplified artifact path --- .github/workflows/build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 01db8101..c88e0474 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -69,7 +69,6 @@ jobs: - name: Upload assets to artifacts uses: actions/upload-artifact@v4 with: - name: artifacts path: ${{ matrix.asset_name }}.gz - name: Generate asset hash @@ -78,5 +77,4 @@ jobs: - name: Upload asset hash to artifacts uses: actions/upload-artifact@v4 with: - name: artifacts path: ${{ matrix.asset_name }}.gz.sha256 From ef4dbbb531f4a8fb9d863eb45cb327965c84cc56 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 23 May 2025 09:11:57 -0400 Subject: [PATCH 15/22] reverted back to old asset paths --- .github/workflows/build.yml | 2 ++ .github/workflows/publish.yml | 16 ++++++---------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c88e0474..31bcaeda 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -69,6 +69,7 @@ jobs: - name: Upload assets to artifacts uses: actions/upload-artifact@v4 with: + name: ${{ matrix.asset_name }}.gz path: ${{ matrix.asset_name }}.gz - name: Generate asset hash @@ -77,4 +78,5 @@ jobs: - name: Upload asset hash to artifacts uses: actions/upload-artifact@v4 with: + name: ${{ matrix.asset_name }}.gz path: ${{ matrix.asset_name }}.gz.sha256 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8f3ed490..2b0e1186 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -32,17 +32,13 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | # Upload all .gz files - for file in artifacts/function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz; do - if [ -f "$file" ]; then - echo "Uploading $file" - #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" - fi + find artifacts -name "function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz" -type f | while read file; do + echo "Uploading $file" + #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" done # Upload all .gz.sha256 files - for file in artifacts/function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz.sha256; do - if [ -f "$file" ]; then - echo "Uploading $file" - #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" - fi + find artifacts -name "function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz.sha256" -type f | while read file; do + echo "Uploading $file" + #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" done From 92d1d8ada78b22bc23bcea5636160b415169acb5 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 23 May 2025 09:19:00 -0400 Subject: [PATCH 16/22] fixed asset name --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 31bcaeda..92b61682 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -78,5 +78,5 @@ jobs: - name: Upload asset hash to artifacts uses: actions/upload-artifact@v4 with: - name: ${{ matrix.asset_name }}.gz + name: ${{ matrix.asset_name }}.gz.sha256 path: ${{ matrix.asset_name }}.gz.sha256 From ce155015b21176edf060cf8f2a684457965922c0 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 23 May 2025 09:28:44 -0400 Subject: [PATCH 17/22] removed debug statements and uncommented lines --- .github/workflows/publish.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2b0e1186..c69ae3cf 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -33,12 +33,10 @@ jobs: run: | # Upload all .gz files find artifacts -name "function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz" -type f | while read file; do - echo "Uploading $file" - #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" + gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" done # Upload all .gz.sha256 files find artifacts -name "function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz.sha256" -type f | while read file; do - echo "Uploading $file" - #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" + gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" done From 293a80a4a70af2ec6d5a4cb952b422f539236963 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 23 May 2025 14:35:34 -0400 Subject: [PATCH 18/22] use github output variables instead of searching for assets --- .github/workflows/build.yml | 8 ++++++++ .github/workflows/publish.yml | 13 +++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 92b61682..cde7058e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -80,3 +80,11 @@ jobs: with: name: ${{ matrix.asset_name }}.gz.sha256 path: ${{ matrix.asset_name }}.gz.sha256 + + - name: Set output parameters + id: set-output + run: | + echo 'ASSET_FILES=["${{ matrix.asset_name }}.gz", "${{ matrix.asset_name }}.gz.sha256"]' >> "$GITHUB_OUTPUT" + + outputs: + asset_files: ${{ steps.set-output.outputs.asset_files }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c69ae3cf..bf71ee15 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -30,13 +30,10 @@ jobs: - name: Upload assets to release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ASSET_FILES: ${{ join(fromJSON(needs.build.outputs.asset_files), ' ') }} run: | - # Upload all .gz files - find artifacts -name "function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz" -type f | while read file; do - gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" - done - - # Upload all .gz.sha256 files - find artifacts -name "function-runner-*-${{ inputs.tag_name || github.event.release.tag_name }}.gz.sha256" -type f | while read file; do - gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "$file" + # Upload all files from the build job + for file in $ASSET_FILES; do + echo "Uploading $file" + #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "artifacts/$file" done From 4f511825f8a7fd588d02db37ddeddeeb1e18b60a Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 23 May 2025 15:07:36 -0400 Subject: [PATCH 19/22] test --- .github/workflows/build.yml | 8 -------- .github/workflows/publish.yml | 4 ++-- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cde7058e..92b61682 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -80,11 +80,3 @@ jobs: with: name: ${{ matrix.asset_name }}.gz.sha256 path: ${{ matrix.asset_name }}.gz.sha256 - - - name: Set output parameters - id: set-output - run: | - echo 'ASSET_FILES=["${{ matrix.asset_name }}.gz", "${{ matrix.asset_name }}.gz.sha256"]' >> "$GITHUB_OUTPUT" - - outputs: - asset_files: ${{ steps.set-output.outputs.asset_files }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index bf71ee15..d6bb9bf0 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -30,10 +30,10 @@ jobs: - name: Upload assets to release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - ASSET_FILES: ${{ join(fromJSON(needs.build.outputs.asset_files), ' ') }} run: | # Upload all files from the build job - for file in $ASSET_FILES; do + echo "ls -R artifacts" + for file in artifacts/*; do echo "Uploading $file" #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "artifacts/$file" done From 29c1eacc8e871f704c12a5f5b41cc9c837ec07ae Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Fri, 23 May 2025 15:36:33 -0400 Subject: [PATCH 20/22] simplified artifact release uploads --- .github/workflows/publish.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d6bb9bf0..bfb5395b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -32,8 +32,6 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | # Upload all files from the build job - echo "ls -R artifacts" for file in artifacts/*; do - echo "Uploading $file" - #gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} "artifacts/$file" + gh release upload ${{ inputs.tag_name || github.event.release.tag_name }} $file done From 6dac12a9e6c644ac681be6a5d60e40f05b5937c1 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Mon, 2 Jun 2025 16:20:31 -0400 Subject: [PATCH 21/22] added should_upload_artifacts boolean to build workflow --- .github/workflows/build.yml | 6 ++++++ .github/workflows/publish.yml | 1 + 2 files changed, 7 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 92b61682..a3c078d1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,6 +7,11 @@ on: description: "Tag name" required: true type: string + should_upload_artifacts: + description: "Should upload artifacts" + required: false + type: boolean + default: false jobs: build: @@ -76,6 +81,7 @@ jobs: run: ${{ matrix.shasum_cmd }} ${{ matrix.asset_name }}.gz | awk '{ print $1 }' > ${{ matrix.asset_name }}.gz.sha256 - name: Upload asset hash to artifacts + if: ${{ inputs.should_upload_artifacts }} uses: actions/upload-artifact@v4 with: name: ${{ matrix.asset_name }}.gz.sha256 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index bfb5395b..9e35fc3f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,6 +16,7 @@ jobs: uses: ./.github/workflows/build.yml with: tag_name: ${{ inputs.tag_name || github.event.release.tag_name }} + should_upload_artifacts: true publish: name: Publish From efc2d1b1baf42243f6716a8a75907c7d62c02156 Mon Sep 17 00:00:00 2001 From: Adam Troiani Date: Mon, 2 Jun 2025 16:40:19 -0400 Subject: [PATCH 22/22] added conditional to all build steps that are only used in publish workflow --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a3c078d1..1c565a23 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -69,15 +69,18 @@ jobs: run: cargo build --release --target ${{ matrix.name }} --package function-runner - name: Archive assets + if: ${{ inputs.should_upload_artifacts }} run: gzip -k -f ${{ matrix.path }} && mv ${{ matrix.path }}.gz ${{ matrix.asset_name }}.gz - name: Upload assets to artifacts + if: ${{ inputs.should_upload_artifacts }} uses: actions/upload-artifact@v4 with: name: ${{ matrix.asset_name }}.gz path: ${{ matrix.asset_name }}.gz - name: Generate asset hash + if: ${{ inputs.should_upload_artifacts }} run: ${{ matrix.shasum_cmd }} ${{ matrix.asset_name }}.gz | awk '{ print $1 }' > ${{ matrix.asset_name }}.gz.sha256 - name: Upload asset hash to artifacts