From 6f27bcb570999ce3c126b2e93a119f8229ee43fa Mon Sep 17 00:00:00 2001 From: Alexey Orlenko Date: Mon, 27 Nov 2023 16:50:48 +0100 Subject: [PATCH] ci: add GH Actions workflow for query-engine-wasm publishing (#4491) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Joël Galeran --- .../workflows/publish-query-engine-wasm.yml | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .github/workflows/publish-query-engine-wasm.yml diff --git a/.github/workflows/publish-query-engine-wasm.yml b/.github/workflows/publish-query-engine-wasm.yml new file mode 100644 index 000000000000..e5dd7fd50617 --- /dev/null +++ b/.github/workflows/publish-query-engine-wasm.yml @@ -0,0 +1,69 @@ +name: Build and publish @prisma/query-engine-wasm +run-name: npm - release @prisma/query-engine-wasm@${{ github.event.inputs.enginesWrapperVersion }} from ${{ github.event.inputs.enginesHash }} on ${{ github.event.inputs.npmDistTag }} + +concurrency: publish-query-engine-wasm + +on: + # usually triggered via GH Actions Workflow in prisma/engines-wrapper repo + workflow_dispatch: + inputs: + packageVersion: + required: true + description: 'New @prisma/query-engine-wasm package version' + enginesHash: + required: true + description: 'prisma-engines commit to build' + npmDistTag: + required: true + default: 'latest' + description: 'npm dist-tag (e.g. latest or integration)' + +jobs: + build: + name: Build and publish @prisma/query-engine-wasm + runs-on: ubuntu-latest + steps: + - name: Print input + run: echo "${{ toJson(github.event.inputs) }}" + + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.enginesHash }} + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + targets: wasm32-unknown-unknown + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: '20.x' + + - name: Install wasm-pack + run: cargo install wasm-pack + + - name: Build @prisma/query-engine-wasm + run: ./build.sh ${{ github.event.inputs.packageVersion }} + working-directory: ./query-engine/query-engine-wasm + + - name: Set up NPM token for publishing + run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc + + - name: Publish @prisma/query-engine-wasm + run: npm publish --access public --tag ${{ github.event.inputs.npmDistTag }} + working-directory: ./query-engine/query-engine-wasm/pkg + + # + # Failure handlers + # + - name: Set current job url in SLACK_FOOTER env var + if: ${{ failure() }} + run: echo "SLACK_FOOTER=<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID|Click here to go to the job logs>" >> $GITHUB_ENV + - name: Slack Notification on Failure + if: ${{ failure() }} + uses: rtCamp/action-slack-notify@v2.2.1 + env: + SLACK_TITLE: 'Build and publish @prisma/query-engine-wasm failed :x:' + SLACK_COLOR: '#FF0000' + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_WASM_FAILING }}