From 89da7a000e2acf8592fb031730190039cf902478 Mon Sep 17 00:00:00 2001 From: Piotr Galar Date: Wed, 29 Jul 2026 21:30:10 +0100 Subject: [PATCH 1/3] ci: port release workflows to v3 --- .github/workflows/release-check.yml | 50 +++++++++++++++++++++++++++++ .github/workflows/releaser.yml | 50 +++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 .github/workflows/release-check.yml create mode 100644 .github/workflows/releaser.yml diff --git a/.github/workflows/release-check.yml b/.github/workflows/release-check.yml new file mode 100644 index 000000000..2741ef636 --- /dev/null +++ b/.github/workflows/release-check.yml @@ -0,0 +1,50 @@ +name: Release Checker + +on: + # Change to pull_request_target for the workflow to function correctly on PRs from forks + pull_request: + paths: + - "**/Cargo.toml" + types: [ opened, synchronize, reopened, labeled, unlabeled ] + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + release-check: + uses: ipdxco/unified-github-workflows/.github/workflows/release-check.yml@v1.0 + if: ${{ github.event_name == 'workflow_dispatch' || !github.event.pull_request.head.repo.fork }} + with: + sources: | + [ + "fvm/Cargo.toml", + "sdk/Cargo.toml", + "shared/Cargo.toml" + ] + separator: "@" + cargo-publish: + needs: [release-check] + if: needs.release-check.outputs.json != '{}' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - name: Install required packages + uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0 + with: + timeout_minutes: 10 + max_attempts: 3 + shell: bash + command: | + sudo apt-get update + sudo apt-get install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev + - name: Dry-run publish + run: | + # Use cargo publish --workspace --dry-run to verify the entire workspace at once. + # This correctly handles interdependent crates which a matrix-based approach misses. + cargo publish --workspace --exclude fvm_conformance_tests --dry-run diff --git a/.github/workflows/releaser.yml b/.github/workflows/releaser.yml new file mode 100644 index 000000000..71d092ebd --- /dev/null +++ b/.github/workflows/releaser.yml @@ -0,0 +1,50 @@ +name: Releaser + +on: + push: + paths: + - "**/Cargo.toml" + workflow_dispatch: + +permissions: + contents: write + id-token: write + +concurrency: + group: ${{ github.workflow }}-${{ github.sha }} + cancel-in-progress: true + +jobs: + releaser: + uses: ipdxco/unified-github-workflows/.github/workflows/releaser.yml@v1.0 + with: + sources: | + [ + "fvm/Cargo.toml", + "sdk/Cargo.toml", + "shared/Cargo.toml" + ] + separator: "@" + secrets: + UCI_GITHUB_TOKEN: ${{ secrets.UCI_GITHUB_TOKEN }} + + cargo-publish: + needs: [releaser] + if: needs.releaser.outputs.json != '{}' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - name: Install required packages + uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0 + with: + timeout_minutes: 10 + max_attempts: 3 + shell: bash + command: | + sudo apt-get update + sudo apt-get install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev + - name: Publish to crates.io + run: | + # Use cargo publish --workspace to publish all changed crates in the workspace. + # This handles interdependent crates correctly and only publishes those with version bumps. + cargo publish --workspace --exclude fvm_conformance_tests From 060e1378340de8d0edaa20984a1aec7b0677c3ef Mon Sep 17 00:00:00 2001 From: Piotr Galar Date: Wed, 29 Jul 2026 22:09:08 +0100 Subject: [PATCH 2/3] ci: target release workflows to v3 branch --- .github/workflows/release-check.yml | 1 + .github/workflows/releaser.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/release-check.yml b/.github/workflows/release-check.yml index 2741ef636..cf732d757 100644 --- a/.github/workflows/release-check.yml +++ b/.github/workflows/release-check.yml @@ -28,6 +28,7 @@ jobs: "shared/Cargo.toml" ] separator: "@" + branches: '["release/v3"]' cargo-publish: needs: [release-check] if: needs.release-check.outputs.json != '{}' diff --git a/.github/workflows/releaser.yml b/.github/workflows/releaser.yml index 71d092ebd..888f9aa91 100644 --- a/.github/workflows/releaser.yml +++ b/.github/workflows/releaser.yml @@ -25,6 +25,7 @@ jobs: "shared/Cargo.toml" ] separator: "@" + branches: '["release/v3"]' secrets: UCI_GITHUB_TOKEN: ${{ secrets.UCI_GITHUB_TOKEN }} From 18666d36e1843c6d99629b56e58ff0ea258c5d31 Mon Sep 17 00:00:00 2001 From: galargh Date: Mon, 3 Aug 2026 22:10:12 +0200 Subject: [PATCH 3/3] Remove conformance publish excludes --- .github/workflows/release-check.yml | 2 +- .github/workflows/releaser.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-check.yml b/.github/workflows/release-check.yml index cf732d757..e1c369918 100644 --- a/.github/workflows/release-check.yml +++ b/.github/workflows/release-check.yml @@ -48,4 +48,4 @@ jobs: run: | # Use cargo publish --workspace --dry-run to verify the entire workspace at once. # This correctly handles interdependent crates which a matrix-based approach misses. - cargo publish --workspace --exclude fvm_conformance_tests --dry-run + cargo publish --workspace --dry-run diff --git a/.github/workflows/releaser.yml b/.github/workflows/releaser.yml index 888f9aa91..8ad413a38 100644 --- a/.github/workflows/releaser.yml +++ b/.github/workflows/releaser.yml @@ -48,4 +48,4 @@ jobs: run: | # Use cargo publish --workspace to publish all changed crates in the workspace. # This handles interdependent crates correctly and only publishes those with version bumps. - cargo publish --workspace --exclude fvm_conformance_tests + cargo publish --workspace