GitLab中semantic-release每日定时发版配置需求咨询
可以实现该需求,具体调整方案如下
1. 禁用main分支提交触发的自动发版
- 修改CI/CD工作流配置,移除对main分支
push事件的监听,确保代码合并到main时不会触发semantic-release流程。 - 检查semantic-release核心配置文件(如
.releaserc.json),确认branches字段未将main分支设为自动触发发版的分支,或通过插件规则限制提交触发行为。
2. 配置每日17点的定时发版任务
- 在CI/CD工具中添加定时触发规则(以GitHub Actions为例),设定每日17点执行发版工作流。注意时区转换:若使用UTC时间,北京时间17点对应UTC的9点,cron表达式应为
0 9 * * *。 - 定时工作流需拉取main分支完整代码历史,执行semantic-release命令完成版本发布。示例配置片段:
name: Daily Scheduled Release on: schedule: - cron: '0 9 * * *' # 北京时间每日17点 jobs: release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: 20 - run: npm ci - run: npx semantic-release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # 若发布到npm,需添加NPM_TOKEN环境变量
3. 适配版本生成逻辑
- 由于所有代码都合并到main分支,semantic-release会基于提交记录(需遵循约定式提交规范)自动判断版本升级类型(patch/minor/major)。若无需自动判断,可通过
@semantic-release/exec插件自定义版本生成逻辑,或设置固定升级规则。
内容的提问来源于stack exchange,提问作者Negin Basiri
相关产品推荐
相关产品推荐

