首页 > 解决方案 > 如果提交消息包含字符串,则运行部署?

问题描述

我正在尝试设置我的 CI,以便在提交消息包含特定字符串时执行部署作业,在我的情况下是:

chore(release)

目前我的配置如下所示:

deploy:
  # deploy to github release
  - provider: releases
    api_key: $GIT_TOKEN
    file_glob: true
    file: "*.vsix"
    skip_cleanup: true
    on:
      tags: false
      all_branches: true
      condition: "$TRAVIS_COMMIT_MESSAGE =~ *release*$"

正如你在这个例子中看到的,我只是尝试匹配单词“release”,但它仍然不起作用。难道我做错了什么?或者可能无法匹配部分字符串?

我在测试时的提交信息是:

chore(release): version 1.1.6

我在主分支(不是标签)上运行它。

日志给我这个消息:

Skipping a deployment with the releases provider because a custom condition was not met

编辑:

我也尝试过这样的事情:

deploy:
  # deploy to github release
  - provider: releases
    if: commit_message =~ /^chore\(release\)/
    api_key: $GIT_TOKEN
    file_glob: true
    file: "*.vsix"
    skip_cleanup: true
    on:
      branch: master

特拉维斯记录了这一点:

/home/travis/.travis/job_stages:第 565 行:预期)' /home/travis/.travis/job_stages: line 565: syntax error near=~' /home/travis/.travis/job_stages:第 565 行:` if [[ ($TRAVIS_BRANCH = commit_message =~ /^chore(release)/) ] ]; 然后'

标签: gittravis-ci

解决方案


推荐阅读