diff --git a/.github/workflows/publish-on-tag.yml b/.github/workflows/publish-on-tag.yml index 818b5d0649..f81691786d 100644 --- a/.github/workflows/publish-on-tag.yml +++ b/.github/workflows/publish-on-tag.yml @@ -13,12 +13,37 @@ jobs: id-token: write steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Set up Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version-file: '.nvmrc' - registry-url: 'https://registry.npmjs.org' - - name: Publish + - name: Authenticate to Google Cloud for OSS Exit Gate + id: auth + uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3 + with: + token_format: 'access_token' + workload_identity_provider: 'projects/305452601764/locations/global/workloadIdentityPools/builders/providers/github' + + - name: Set up Cloud SDK + uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3 + + - name: Stage to Artifact Registry and trigger OSS Exit Gate + env: + ACCESS_TOKEN: ${{ steps.auth.outputs.access_token }} + RUN_ID: ${{ github.run_id }} + RUN_ATTEMPT: ${{ github.run_attempt }} run: | - npm publish --provenance --access public + cat << 'NPMRC' > "$HOME/.npmrc" + registry=https://us-npm.pkg.dev/oss-exit-gate-prod/devtools-protocol--npm/ + //us-npm.pkg.dev/oss-exit-gate-prod/devtools-protocol--npm/:always-auth=true + //us-npm.pkg.dev/oss-exit-gate-prod/devtools-protocol--npm/:_authToken=${ACCESS_TOKEN} + NPMRC + trap 'rm -f "$HOME/.npmrc"' EXIT + npm publish --access public --registry="https://us-npm.pkg.dev/oss-exit-gate-prod/devtools-protocol--npm/" + cat << 'MANIFEST' > manifest.json + { + "publish_all": true + } + MANIFEST + gcloud storage cp manifest.json "gs://oss-exit-gate-prod-projects-bucket/devtools-protocol/npm/manifests/manifest-${RUN_ID}-${RUN_ATTEMPT}.json"