Skip to content

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

Publish ES Packages from master under @nightly tag.

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

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