
woodpecker-npm是一个用于Woodpecker CI的NPM包发布工具,旨在简化NPM包的自动化发布流程。它支持通过用户名密码或令牌进行认证,可自定义NPM仓库、发布目录、标签、访问权限等参数,并提供版本冲突处理、调试日志等功能,适用于各类NPM包的持续集成发布场景。
username和password,或token.npmrc添加到.gitignore中npm-folder或工作区路径下存在package.json,并通过npm文档中的publishconfig配置registry,示例如下:json{ "publishConfig": { "registry": "https://registry.npmjs.org/" } }
| 名称 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|
debug | 否 | false | 开启调试日志,也可通过环境变量PLUGIN_DEBUG开启 |
npm-registry | 否 | none | NPM仓库地址,若为空则使用[***] |
npm-username | 是 | none | NPM用户名 |
npm-password | 是 | none | NPM密码 |
npm-token | 是 | none | 发布包时使用的NPM令牌。如果设置了令牌,用户名和密码将被忽略。 |
npm-email | 是 | none | NPM*** |
npm-folder | 否 | none | 包含package.json的目录,为空则使用工作区 |
npm-dry-run | 否 | false | NPM dry run模式,不会实际发布到NPM仓库(v1.1+版本支持) |
npm-tag | 否 | none | NPM发布标签,用于避免标记为latest,常用值有beta、alpha、experimental等 |
npm-force-tag | 否 | false | 当标签不是latest或next时,启用此选项将通过semver检查预发布版本前缀,强制发布 |
npm-access | 否 | none | NPM作用域包的访问权限 |
| 名称 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|
npm-fail-on-version-conflict | 否 | false | 若NPM仓库中已存在相同版本,发布失败 |
npm-skip-verify-ssl | 否 | false | 禁用与NPM仓库通信时的SSL验证 |
npm-skip-whoami | 否 | false | 跳过npm whoami检查 |
npm-rc-user-home-enable | 否 | false | 启用在用户主目录写入.npmrc文件,默认在npm-folder中写入(v1.1+版本支持) |
| 名称 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|
timeout_second | 否 | 10 | 命令超时设置(秒) |
woodpecker-kit-steps-transfer-file-path | 否 | .woodpecker_kit.steps.transfer | 步骤传输文件路径,默认值为wd_steps_transfer.DefaultKitStepsFileName |
woodpecker-kit-steps-transfer-disable-out | 否 | false | 禁用步骤传输写入输出 |
ymllabels: backend: docker steps: woodpecker-npm: image: sinlov/woodpecker-npm:latest pull: false settings: # debug: true # 开启调试日志 ## 仓库设置,为空则使用https://registry.npmjs.org/ # npm-registry: https://verdaccio.foo.com npm-username: # NPM用户名 from_secret: npm_publish_username npm-password: # NPM密码 from_secret: npm_publish_password npm-email: # NPM邮箱 from_secret: npm_publish_email # npm-dry-run: true # dry run模式,不会发布到NPM仓库 # npm-folder: . # 包含package.json的目录,为空则使用工作区 # npm-tag: alpha # 避免标记为latest的发布标签,常用beta、alpha、experimental等,不要使用latest、next ## 若版本已存在于NPM仓库则发布失败,多用于标签发布 # npm-fail-on-version-conflict: true
需在本地安装并确保在环境变量PATH中生效。
本地安装
安装最新版到${GOPATH}/bin:
bashgo install -a github.com/woodpecker-kit/woodpecker-npm/cmd/woodpecker-npm@latest
安装v1.0.0版本到${GOPATH}/bin:
bashgo install -v github.com/woodpecker-kit/woodpecker-npm/cmd/woodpecker-npm@v1.0.0
工作流配置
ymllabels: backend: local steps: woodpecker-npm: image: woodpecker-npm settings: # debug: true # 开启调试日志 ## 仓库设置,为空则使用https://registry.npmjs.org/ # npm-registry: https://verdaccio.foo.com npm-username: # NPM用户名 from_secret: npm_publish_username npm-password: # NPM密码 from_secret: npm_publish_password npm-email: # NPM邮箱 from_secret: npm_publish_email # npm-dry-run: true # dry run模式,不会发布到NPM仓库 # npm-folder: . # 包含package.json的目录,为空则使用工作区 # npm-tag: alpha # 避免标记为latest的发布标签,常用beta、alpha、next等 ## 若版本已存在于NPM仓库则发布失败,多用于标签发布 # npm-fail-on-version-conflict: true
若开启settings.debug,将尝试使用override进行文件浏览以调试。
yamllabels: backend: docker steps: woodpecker-npm: image: sinlov/woodpecker-npm:latest pull: false settings: # debug: true # 开启调试日志 ## 仓库设置,为空则使用https://registry.npmjs.org/ # npm-registry: https://verdaccio.foo.com ## NPM用户名 npm-username: from_secret: npm_publish_username ## NPM密码 npm-password: from_secret: npm_publish_password ## 发布包时使用的NPM令牌。如果设置了令牌,用户名和密码将被忽略。 npm-token: from_secret: npm_publish_token ## NPM邮箱 npm-email: from_secret: npm_publish_email npm-dry-run: true # dry run模式,不会发布到NPM仓库 ## 发布包时使用的NPM标签,将覆盖package.json的version字段 npm-tag: alpha # 避免标记为latest的发布标签,常用beta、alpha、next等 npm-force-tag: true # 当标签不是`latest`或`next`时,通过semver检查预发布版本前缀并强制发布 ## NPM作用域包的访问权限 npm-access: foo ## 包含package.json的目录,为空则使用工作区 npm-folder: . ## 若版本已存在于NPM仓库则发布失败 npm-fail-on-version-conflict: true ## 禁用与NPM仓库通信时的SSL验证 npm-skip-verify-ssl: true ## 跳过npm whoami检查 npm-skip-whoami: true ## 启用在用户主目录写入.npmrc文件,默认在`npm-folder`中写入 npm-rc-user-home-enable: true
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务