Skip to content

Publish ES Packages from master under @nightly tag. #913

Publish ES Packages from master under @nightly tag.

Publish ES Packages from master under @nightly tag. #913

name: Publish Noir ES Packages
on:
workflow_dispatch:
inputs:
noir-ref:
description: The noir reference to checkout
required: false
default: "master"
npm-tag:
description: Repository Tag to publish under
required: false
default: "nightly"
run-name: Publish ES Packages from ${{ inputs.noir-ref }} under @${{ inputs.npm-tag }} tag.
jobs:
build-noirc_abi_wasm:
runs-on: ubuntu-22.04
steps:
- name: Checkout Noir repo
uses: actions/checkout@v6
with:
ref: ${{ inputs.noir-ref }}
- name: Setup toolchain
uses: dtolnay/[email protected]
- uses: Swatinem/rust-cache@v2
with:
key: noirc-abi
save-if: false
- name: Install Yarn dependencies
uses: ./.github/actions/setup
- uses: taiki-e/install-action@just
- name: Build noirc_abi
run: just build-package @noir-lang/noirc_abi
- name: Upload artifact
uses: actions/upload-artifact@v6
with:
name: noirc_abi_wasm
path: |
./tooling/noirc_abi_wasm/nodejs
./tooling/noirc_abi_wasm/web
retention-days: 10
build-noir_wasm:
runs-on: ubuntu-22.04
steps:
- name: Checkout sources
uses: actions/checkout@v6
with:
ref: ${{ inputs.noir-ref }}
- name: Setup toolchain
uses: dtolnay/[email protected]
- uses: Swatinem/rust-cache@v2
with:
key: noir-wasm
save-if: false
- uses: taiki-e/install-action@just
- name: Install Yarn dependencies
uses: ./.github/actions/setup
- name: Build noir_js_types
run: just build-package @noir-lang/types
- name: Build noir_wasm
run: just build-package @noir-lang/noir_wasm
- name: Upload artifact
uses: actions/upload-artifact@v6
with:
name: noir_wasm
path: |
./compiler/wasm/dist
./compiler/wasm/build
retention-days: 3
build-acvm_js:
runs-on: ubuntu-22.04
steps:
- name: Checkout sources
uses: actions/checkout@v6
with:
ref: ${{ inputs.noir-ref }}
- name: Setup toolchain
uses: dtolnay/[email protected]
- uses: Swatinem/rust-cache@v2
with:
key: acvm-js
save-if: false
- name: Install Yarn dependencies
uses: ./.github/actions/setup
- uses: taiki-e/install-action@just
- name: Build acvm_js
run: just build-package @noir-lang/acvm_js
- name: Upload artifact
uses: actions/upload-artifact@v6
with:
name: acvm-js
path: |
./acvm-repo/acvm_js/nodejs
./acvm-repo/acvm_js/web
retention-days: 3
publish-es-packages:
runs-on: ubuntu-22.04
needs: [build-acvm_js, build-noirc_abi_wasm, build-noir_wasm]
permissions:
contents: read
id-token: write # Necessary for NPM provenance: https://docs.npmjs.com/generating-provenance-statements
issues: write # To alert on failure
steps:
- name: Checkout sources
uses: actions/checkout@v6
with:
ref: ${{ inputs.noir-ref }}
- uses: actions/download-artifact@v7
with:
name: acvm-js
path: acvm-repo/acvm_js
- uses: actions/download-artifact@v7
with:
name: noir_wasm
path: compiler/wasm
- uses: actions/download-artifact@v7
with:
name: noirc_abi_wasm
path: tooling/noirc_abi_wasm
- name: Install Yarn dependencies
uses: ./.github/actions/setup
- name: Build ES Packages
run: yarn build:js:only
- name: Prepare nightly version
if: ${{ inputs.npm-tag != 'latest' }}
run: |
yarn nightly:version -- .${{ inputs.npm-tag }}
- name: Publish ES Packages
run: yarn publish:all --provenance --access public --tag ${{ inputs.npm-tag }}
# Raise an issue if any package failed to publish
- name: Alert on failed publish
uses: JasonEtco/create-an-issue@v2
if: ${{ failure() }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TAG: ${{ inputs.npm-tag }}
WORKFLOW_NAME: ${{ github.workflow }}
WORKFLOW_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
with:
update_existing: true
filename: .github/JS_PUBLISH_FAILED.md