I'm using some github action to release one of my package in a mono repo, holding about 4-5 package likes:
github-repository (monorepo):
- folder_1 (package 1)
- folder_2 (package 2)
- folder_3 (package 3)
For each packages located in this monorepo, when a tag matching a version is released, the action will release it, using a workflow (almost identical for all packages):
name: package 1
on:
  push:
    tags:
      - package1/v*
permissions:
  contents: read
  packages: write
jobs:
  release:
    name: Release
    runs-on: ubuntu-22.12
    defaults:
      run:
        working-directory: folder_1
    steps:
      - name: Checkout source code
        uses: actions/checkout@ab597985615ec2ede58e132d2621d2b1cbd6127c
      - name: Set up Node
        uses: .github/actions/secure-setup-node
        with:
          path: folder_1
      - name: install dependencies
        run: yarn --frozen-lockfile
        env:
          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: build package
        run: yarn build
      - name: add package.json
        run: cp package.json ./dist
      - name: add yarn.lock
        run: cp yarn.lock ./dist
      - name: add README.md
        run: cp README.md ./dist
      - run: yarn publish ./dist
        env:
          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
each packages have their own action's workflow .yaml and works fine, except for the new package I just created: package 4 (located in github-repository/folder_4).
it's a basic package except it only holds config files, so it's yarn build script will only copy theses file in the ./dist folder, without implying node or javascript, making it's workflow looking like:
name: Config Release
on:
  push:
    tags:
      - package4/v*
permissions:
  contents: read
  packages: write
jobs:
  release:
    name: Release
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: folder_4
    steps:
      - name: Checkout source code
        uses: actions/checkout@a55da8c3cf115ac326823e79a1e1788f7940201b
      - name: build package
        run: yarn build
      - run: yarn publish ./dist
        env:
          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
But here goes the issue ! running this action will result by:
Run yarn publish ./dist
yarn publish v1.22.19
[1/4] Bumping version...
info Current version: 1.0.0
[2/4] Logging in...
error No token found and can't prompt for login when running with --non-interactive.
info Visit https://yarnpkg.com/en/docs/cli/publish for documentation about this command.
Error: Process completed with exit code 1.
I checked a lot of documentation or github issues about this matter and managed to fix my problem, by replacing NODE_AUTH_TOKEN by NPM_AUTH_TOKEN, but why did it solved it when all my previous packages are still using NODE_AUTH_TOKEN ? is it because I'm not using setup-node ? (I don't use it because I'm not using node to build my javascript), because I don't have yarn.lock ? (even an empty one),
What's the difference about these 2 ? in this issue someone told that:
NPM_AUTH_TOKEN work for npm registry
NODE_AUTH_TOKEN work for scope registry
what does it mean ?