GitHub Actions本地脚本能否不使用process.env.message通过with传参
报错根因
GitHub Actions 的 step 配置规则中,with 是自定义 Action 专属参数,只能和 uses 字段(用于调用公共/本地自定义 Action)搭配使用。直接为 run 字段(执行本地脚本/命令)添加 with 参数会触发语法校验失败。
解决方案(适配你用
with 传参的需求) 你只需要把现有脚本封装为本地自定义 Action,不需要修改原有 action.js 代码,操作步骤如下:
- 新增本地 Action 配置文件
在.github/scripts目录下新建action.yml,内容如下:
name: 'Message Validator' description: '校验传入的message参数' inputs: message: description: '需要校验的消息内容' required: true runs: using: 'node20' # 可替换为你实际使用的Node.js版本,支持node16、node18、node20 main: 'action.js'
- 调整 workflow 配置
修改.github/workflows/message.yml内容如下:
name: "message" # 保留你原有触发规则,比如on: [push, pull_request] jobs: validate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # 必须先拉取仓库代码,才能读取本地Action文件 - name: check message uses: ./.github/scripts # 指向存放action.yml的本地目录 with: message: 'must-message'
替代方案(无需封装Action,用环境变量传参)
如果你不需要强制使用 with 字段,也可以通过env传参,仅需调整两处代码:
- 修改
.github/scripts/action.js参数读取逻辑:
#!/usr/bin/env node async function run() { if (process.env.MESSAGE !== 'must-message') { console.error('message is invalid') process.exit(1) } } run()
- 调整workflow对应step配置:
- name: check message run: .github/scripts/action.js env: MESSAGE: 'must-message'
内容的提问来源于stack exchange,提问作者mkungla
相关产品推荐
相关产品推荐

