DOPS-1719 Implement npmjs publishing using OIDC, using npm@11 #57
Workflow file for this run
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 package | |
| on: | |
| push: | |
| tags: | |
| - v*.*.* | |
| jobs: | |
| publish-to-npm: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 20 | |
| registry-url: 'https://registry.npmjs.org' | |
| scope: ${{ github.repository_owner }} | |
| - name: Update package.json | |
| run: | | |
| TAG_NAME=${GITHUB_REF/refs\/tags\//} | |
| PACKAGE_VERSION=${TAG_NAME#v} | |
| echo "Updating package.json to version $PACKAGE_VERSION" | |
| cat <<< $(jq -r ".version=\"$PACKAGE_VERSION\"" package.json) > package.json | |
| cat package.json | |
| - name: Install dependencies | |
| run: yarn install --frozen-lockfile | |
| - name: Build | |
| run: yarn build | |
| # Using latest npm instead of yarn 1.x cause it has OIDC support | |
| - name: Publish | |
| run: | | |
| npm install -g npm@11 | |
| npm publish | |
| working-directory: dist | |
| publish-to-github: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 20 | |
| registry-url: 'https://npm.pkg.github.com' | |
| scope: ${{ github.repository_owner }} | |
| - name: Update package.json | |
| run: | | |
| TAG_NAME=${GITHUB_REF/refs\/tags\//} | |
| PACKAGE_VERSION=${TAG_NAME#v} | |
| echo "Updating package.json to version $PACKAGE_VERSION" | |
| cat <<< $(jq -r ".version=\"$PACKAGE_VERSION\"" package.json) > package.json | |
| cat package.json | |
| - name: Install dependencies | |
| run: yarn install --frozen-lockfile | |
| - name: Build | |
| run: yarn build | |
| - name: Publish | |
| run: yarn publish | |
| working-directory: dist | |
| env: | |
| NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |