From d1c31767252683ad7909b8b1c8b0023e145dd728 Mon Sep 17 00:00:00 2001 From: Predrag Gruevski <2348618+obi1kenobi@users.noreply.github.com> Date: Fri, 26 Jul 2024 10:16:52 -0400 Subject: [PATCH] Add separately-invocable build-binaries workflow. (#837) --- .github/workflows/build-binaries.yml | 59 ++++++++++++++++++++++++++++ .github/workflows/release.yml | 41 +++---------------- 2 files changed, 64 insertions(+), 36 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..5ec23af1 --- /dev/null +++ b/.github/workflows/build-binaries.yml @@ -0,0 +1,59 @@ +name: Build binaries + +on: + workflow_call: + inputs: + publish-tag: + required: true + type: string + workflow_dispatch: + inputs: + publish-tag: + required: true + type: string + +concurrency: + group: build-binaries + +env: + RUST_BACKTRACE: 1 + CARGO_TERM_COLOR: always + +jobs: + build-and-upload-binary: + name: Build ${{ matrix.target }} + strategy: + matrix: + include: + - target: aarch64-unknown-linux-gnu + - target: aarch64-unknown-linux-musl + - target: aarch64-apple-darwin + os: macos-latest + - target: x86_64-unknown-linux-gnu + - target: x86_64-unknown-linux-musl + - target: x86_64-apple-darwin + os: macos-latest + - target: x86_64-pc-windows-msvc + os: windows-latest + runs-on: ${{ matrix.os || 'ubuntu-latest' }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Install rust + uses: dtolnay/rust-toolchain@stable + + - name: Upload binary + uses: taiki-e/upload-rust-binary-action@v1 + with: + bin: cargo-semver-checks + target: ${{ matrix.target }} + ref: refs/tags/${{ inputs.publish-tag }} + tar: all + zip: windows + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 1 + CARGO_PROFILE_RELEASE_LTO: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c91d3de3..415f7fc3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,41 +51,10 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} upload-binary: - name: ${{ matrix.target }} + name: Run the build-binaries workflow needs: - create-release - strategy: - matrix: - include: - - target: aarch64-unknown-linux-gnu - - target: aarch64-unknown-linux-musl - - target: aarch64-apple-darwin - os: macos-latest - - target: x86_64-unknown-linux-gnu - - target: x86_64-unknown-linux-musl - - target: x86_64-apple-darwin - os: macos-latest - - target: x86_64-pc-windows-msvc - os: windows-latest - runs-on: ${{ matrix.os || 'ubuntu-latest' }} - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - persist-credentials: false - - - name: Install rust - uses: dtolnay/rust-toolchain@stable - - - name: Upload binary - uses: taiki-e/upload-rust-binary-action@v1 - with: - bin: cargo-semver-checks - target: ${{ matrix.target }} - ref: refs/tags/${{ inputs.publish-tag }} - tar: all - zip: windows - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 1 - CARGO_PROFILE_RELEASE_LTO: true + if: github.ref == 'refs/heads/main' + uses: ./.github/workflows/build-binaries.yml + with: + publish-tag: ${{ inputs.publish-tag }}