Publish ES Packages from master under @nightly tag. #913
This file contains hidden or 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-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 |