He escrito un archivo de prueba para una acción de Github:
prueba.yml
name: Test on: push: branches: [main] pull_request: branches: [main] jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [14.x, 16.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} - run: npm ci - run: npm run build --if-present - run: npm testpero mi paquete.json usa un repositorio privado de organización. Cuando se ejecuta Github Action, falla y aparece el error:
npm ERR! code E404 npm ERR! 404 Not Found - GET https://registry.npmjs.org/@org/repo/ npm ERR! 404 npm ERR! 404 '@org/repo@1.2.3' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!) npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url. npm ERR! A complete log of this run can be found in: npm ERR! /home/runner/.npm/_logs/2022-02-10T17_17_46_961Z-debug.log Error: Process completed with exit code 1.Mi investigación tratando de resolver el problema:
npm ERR! 404 Not Found - PUT https://registry.npmjs.org/En mi acción de Github, ¿cómo puedo hacer referencia correctamente al repositorio de la organización privada para que mi prueba funcione correctamente o me falta algún paso?
Debe agregar autorización a CI con URL + token; se realiza a través del archivo .npmrc .
Cree un token: npm token create --read-only
Agréguelo a sus secretos en GitHub llamado NPM_TOKEN
Antes de ejecutar npm ci cree un archivo local con su token:
Agregue un paso: - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc
Todo lo demás se queda como está.
Esta respuesta fue correcta y aquí está el archivo test.yml de muestra ahora:
name: Test on: push: branches: [main] pull_request: branches: [main] jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [14.x, 16.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc - run: npm ci - run: npm run build --if-present - run: npm testLa acción de Github se muestra como pasada: