Fix npm auth environment variables with yarn 4 (v3) #2035
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: PR | |
| on: | |
| pull_request: | |
| branches: [main, v2] | |
| push: | |
| branches: [main, v2] | |
| concurrency: | |
| # For PRs, use the ref (branch) in the concurrency group so that new pushes cancel any old runs. | |
| # For pushes to main, ideally we wouldn't set a concurrency group, but github actions doesn't | |
| # support conditional blocks of settings, so we use the SHA so the "group" is unique. | |
| group: ${{ github.workflow }}-${{ (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/v2') && github.sha || github.ref }} | |
| cancel-in-progress: true | |
| permissions: {} | |
| jobs: | |
| build: | |
| strategy: | |
| # Sometimes it can be helpful to see if a failure is specific to a particular environment | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # node 22/npm 10 on ubuntu and windows | |
| - os: ubuntu-latest | |
| npm: 10 | |
| node: 22 | |
| - os: windows-latest | |
| npm: 10 | |
| node: 22 | |
| # node 24/npm 11 on ubuntu and windows | |
| - os: ubuntu-latest | |
| npm: 11 | |
| node: 24 | |
| - os: windows-latest | |
| npm: 11 | |
| node: 24 | |
| name: build (${{ matrix.os }}, node ${{ matrix.node }}, npm ${{ matrix.npm }}) | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Install Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| cache: yarn | |
| node-version: ${{ matrix.node }} | |
| # Guarantee a predictable version of npm | |
| - name: Install npm@${{ matrix.npm }} | |
| run: npm install --global npm@${{ matrix.npm }} | |
| - run: yarn --immutable | |
| - run: yarn build --verbose | |
| - run: yarn checkchange --verbose | |
| - run: yarn format:check | |
| if: matrix.os == 'ubuntu-latest' && matrix.node == 22 | |
| - run: yarn lint:ci | |
| if: matrix.os == 'ubuntu-latest' && matrix.node == 22 | |
| - run: yarn test --verbose | |
| id: test | |
| # See packageManager.ts comments... | |
| - name: run specific tests in Windows bash | |
| if: matrix.os == 'windows-latest' | |
| shell: bash | |
| run: yarn workspace beachball test packagePublish npmAuthEnvPassthrough | |
| # For a few specific test failures, it can be helpful to see npm debug logs | |
| # (usually not relevant, but there's not a good way to distinguish by specific failure) | |
| - name: (on test failure) Get npm cache path | |
| if: failure() && steps.test.outcome == 'failure' | |
| shell: bash | |
| run: echo "NPM_CACHE_DIR=$(npm config get cache)" >> "$GITHUB_ENV" | |
| - name: (on test failure) Upload npm logs as artifact | |
| if: failure() && steps.test.outcome == 'failure' | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: npm-logs-${{ matrix.os }}-node${{ matrix.node }}-npm${{ matrix.npm }} | |
| path: ${{ env.NPM_CACHE_DIR }}/_logs | |
| retention-days: 3 | |
| # The docs have a separate installation | |
| docs: | |
| name: build docs | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Install Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| cache: yarn | |
| node-version-file: .nvmrc | |
| - run: yarn --immutable | |
| working-directory: ./docs | |
| - run: yarn docs:build | |
| working-directory: ./docs |