Skip to content

feat: Add comptime Interpreter (#4821) #15

feat: Add comptime Interpreter (#4821)

feat: Add comptime Interpreter (#4821) #15

Workflow file for this run

name: Release
on:
push:
branches:
- master
jobs:
release-please:
name: Create Release
outputs:
release-pr: ${{ steps.release.outputs.pr }}
tag-name: ${{ steps.release.outputs.tag_name }}
runs-on: ubuntu-latest
steps:
- name: Run release-please
id: release
uses: google-github-actions/release-please-action@v3
with:
token: ${{ secrets.NOIR_RELEASES_TOKEN }}
command: manifest
update-acvm-workspace-package-versions:
name: Update acvm workspace package versions
needs: [release-please]
if: ${{ needs.release-please.outputs.release-pr }}
runs-on: ubuntu-latest
steps:
- name: Checkout release branch
uses: actions/checkout@v4
with:
ref: ${{ fromJSON(needs.release-please.outputs.release-pr).headBranchName }}
token: ${{ secrets.NOIR_RELEASES_TOKEN }}
- name: Setup toolchain
uses: dtolnay/[email protected]
- name: Update ACVM workspace root versions
run: |
./scripts/update-acvm-workspace-versions.sh
- name: Update lockfile
run: |
cargo update --workspace
- uses: actions/setup-node@v3
with:
node-version: 18.19.0
cache: 'yarn'
cache-dependency-path: 'yarn.lock'
- name: Update yarn.lock
run: yarn
- name: Configure git
run: |
git config user.name kevaundray
git config user.email [email protected]
- name: Commit updates
run: |
git add .
git commit -m 'chore: Update root workspace acvm versions and lockfile'
git push
update-docs:
name: Update docs
needs: [release-please, update-acvm-workspace-package-versions]
if: ${{ needs.release-please.outputs.release-pr }}
runs-on: ubuntu-latest
steps:
- name: Checkout release branch
uses: actions/checkout@v4
with:
ref: ${{ fromJSON(needs.release-please.outputs.release-pr).headBranchName }}
token: ${{ secrets.NOIR_RELEASES_TOKEN }}
- name: Install Yarn dependencies
uses: ./.github/actions/setup
- name: Install wasm-bindgen-cli
uses: taiki-e/install-action@v2
with:
tool: [email protected]
- name: Install wasm-opt
run: |
npm i wasm-opt -g
- name: Query new noir version
id: noir-version
run: |
NOIR_VERSION=$(grep '^version =' ./Cargo.toml | sed -E 's/version = "([^"]+)"/v\1/')
echo "semver=$NOIR_VERSION" >> $GITHUB_OUTPUT
- name: Cut a new version
working-directory: ./docs
run: yarn version ${{ steps.noir-version.outputs.semver }}
- name: Configure git
run: |
git config --local user.name 'kevaundray'
git config --local user.email '[email protected]'
- name: Commit new documentation version
run: |
git add .
git commit -m "chore(docs): cut new docs version for tag ${{ steps.noir-version.outputs.semver }}"
git push
release-end:
name: Release End
runs-on: ubuntu-latest
# We want this job to always run (even if the dependant jobs fail) as we need apply changes to the sticky comment.
if: ${{ always() }}
needs:
- release-please
- update-acvm-workspace-package-versions
- update-docs
env:
# We treat any skipped or failing jobs as a failure for the workflow as a whole.
FAIL: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped') }}
steps:
- name: Add warning to sticky comment
uses: marocchino/sticky-pull-request-comment@v2
with:
# We need to specify the PR on which to make the comment as workflow is triggered by push.
number: ${{ fromJSON(needs.release-please.outputs.release-pr).number }}
# delete the comment in case failures have been fixed
delete: ${{ env.FAIL == false }}
message: "The release workflow has not completed successfully. Releasing now will result in a broken release"
- name: Report overall success
run: |
if [[ $FAIL == true ]]; then
exit 1
else
exit 0
fi
build-binaries:
name: Build binaries
needs: [release-please]
if: ${{ needs.release-please.outputs.tag-name }}
runs-on: ubuntu-latest
steps:
- name: Dispatch to publish workflow
uses: benc-uk/workflow-dispatch@v1
with:
workflow: publish-nargo.yml
repo: noir-lang/noir
ref: master
token: ${{ secrets.GITHUB_TOKEN }}
inputs: '{ "tag": "${{ needs.release-please.outputs.tag-name }}", "publish": true }'
publish-es-packages:
name: Publish ES packages
needs: [release-please]
if: ${{ needs.release-please.outputs.tag-name }}
runs-on: ubuntu-latest
steps:
- name: Dispatch to publish-es-packages
uses: benc-uk/workflow-dispatch@v1
with:
workflow: publish-es-packages.yml
ref: master
token: ${{ secrets.NOIR_REPO_TOKEN }}
inputs: '{ "noir-ref": "${{ needs.release-please.outputs.tag-name }}", "npm-tag": "latest" }'
publish-acvm:
name: Publish acvm
needs: [release-please]
if: ${{ needs.release-please.outputs.tag-name }}
runs-on: ubuntu-latest
steps:
- name: Dispatch to publish-acvm
uses: benc-uk/workflow-dispatch@v1
with:
workflow: publish-acvm.yml
ref: master
token: ${{ secrets.NOIR_REPO_TOKEN }}
inputs: '{ "noir-ref": "${{ needs.release-please.outputs.tag-name }}" }'