Publish ES Packages from master under @nightly tag. #374
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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-latest | |
steps: | |
- name: Checkout Noir repo | |
uses: actions/checkout@v4 | |
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 | |
- name: Install wasm-opt | |
run: ./.github/scripts/wasm-opt-install.sh | |
- name: Build noirc_abi | |
run: ./.github/scripts/noirc-abi-build.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
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-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ inputs.noir-ref }} | |
- name: Setup toolchain | |
uses: dtolnay/[email protected] | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: noir-wasm | |
save-if: false | |
- name: Install Yarn dependencies | |
uses: ./.github/actions/setup | |
- name: Install wasm-opt | |
run: ./.github/scripts/wasm-opt-install.sh | |
- name: Build noir_js_types | |
run: yarn workspace @noir-lang/types build | |
- name: Build noir_wasm | |
run: ./.github/scripts/noir-wasm-build.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: noir_wasm | |
path: | | |
./compiler/wasm/dist | |
./compiler/wasm/build | |
retention-days: 3 | |
build-acvm_js: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
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 | |
- name: Install wasm-opt | |
run: ./.github/scripts/wasm-opt-install.sh | |
- name: Build acvm_js | |
run: ./.github/scripts/acvm_js-build.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: acvm-js | |
path: | | |
./acvm-repo/acvm_js/nodejs | |
./acvm-repo/acvm_js/web | |
retention-days: 3 | |
publish-es-packages: | |
runs-on: ubuntu-latest | |
needs: [build-acvm_js, build-noirc_abi_wasm, build-noir_wasm] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ inputs.noir-ref }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: acvm-js | |
path: acvm-repo/acvm_js | |
- uses: actions/download-artifact@v4 | |
with: | |
name: noir_wasm | |
path: compiler/wasm | |
- uses: actions/download-artifact@v4 | |
with: | |
name: noirc_abi_wasm | |
path: tooling/noirc_abi_wasm | |
- name: Install Yarn dependencies | |
run: yarn install | |
- 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: Authenticate with npm | |
run: "echo npmAuthToken: ${{ secrets.NPM_TOKEN }} > ~/.yarnrc.yml" | |
- name: Publish ES Packages | |
run: yarn publish:all --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 |