我有一个托管在谷歌云服务器上的工作 verdaccio 服务器。我可以手动发布到它,但是当我推送到主分支时,我很难创建一个 GitHub Action 来发布到它。
我有一个脚本在发布到 npmjs 公共仓库时可以完美运行。这是适用于 npmjs.org 的相关部分
- name: Publish to npm
if: steps.semantic.outputs.new_release_published == 'true'
run: |
yarn install
git checkout upm
npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
现在,对于我自己的服务器,我在 package.json 中添加了以下内容:
"publishConfig": {
"registry": "http://my.ip.0.0:port"
},
然后在存储库机密中,我使用登录后从计算机的 .npmrc 文件中复制的用户令牌创建了一个 NPM_TOKEN 机密。
我从 Github Actions 结果中收到以下错误:
npm ERR! code E401
npm ERR! Unable to authenticate, your authentication token seems to be invalid.
npm ERR! To correct this please trying logging in again with:
npm ERR! npm login
所以我显然没有正确验证。
我尝试(在服务器的 cli 上)使用npm token create
,但它给了我一个未经授权的错误,我也在登录后在本地计算机上尝试了相同的操作,并得到了同样的错误。
如何验证我的 Github Actions 发布到我的自定义 Verdaccio 服务器?我对整个 CI 业务还很陌生,所以我怀疑我错过了一些非常基本的东西。我怀疑我使用 NPM_TOKEN 做错了,但发布到 npmjs.org 公共仓库效果很好。
同样,我可以从我的 Mac 上的终端手动发布npm publish
(使用 登录自定义服务器后npm login
),所以我知道服务器设置正确。