Add an NPM_TOKEN
secret on GitHub. Get your secret key from the NPM dashboard.
- name: Authenticate with private NPM package
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
A full example might look like:
name: Install cached packages
jobs:
install-with-cache:
name: Create new build on EAS
runs-on: ubuntu-latest
steps:
- name: Setup repo
uses: actions/checkout@v2
- name: Setup node
uses: actions/setup-node@v1
with:
node-version: 14.x
- name: Find yarn cache
id: yarn-cache-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Restore cache
uses: actions/cache@v2
with:
path: ${{ steps.yarn-cache-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Authenticate with private NPM package
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
- name: Install dependencies
run: yarn install --frozen-lockfile --check-files
I was having issues with private repos for a few weeks now. Something must have changed in the way the workers are set up.
for me this line didn't work anymore:
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
instead I had to change it to the absolute path that I only saw by accident because somehow the action printed it in the logs:
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > /home/runner/work/_temp/.npmrc
If someone knows why this changed or maybe why it only changed for us please let me know.
Hope this helps someone out there.
@Emmanuerl you can get this NPM_TOKEN from the npm registry you are using for your private package. We host ours on Github packages and get this token in the developer settings by creating a classic access token with read right to packages. Writing it to the .npmrc file is equal to logging in via
npm login
on the console but without the need for interactivity.