今日(20170406)時点のCircleCI 2.0(Beta)では、1系のときに存在したこの記述が動かない。
deploymentタグをフックする
`config.yml`にこう書く。
version: 2 # ... deployment: fake_deploy_for_cci2: # 別に名前はなんでもいい tag: /.*/ # どんなタグでもフックするようにするのが重要 command: | echo "現時点でtagのpushによりCIを動かすにはこうして見張るしかない" echo "そして実処理は別途書く必要がある" echo "というかたぶんココ動いてないし、ドコにログ出てるかも不明"これでとりあえずタグがpushされた時にCIが動きます。
特定のタグでなんかする
とりあえずタグのpush時にもCIするだけならここまででOK。
ただしほとんどそんなことないはずで・・、特定のタグでなんかするをやるにはさっきのに加えてこう書く。
version: 2 jobs: build: steps: - deploy name: Deploy somthing command: | if [[ "${CIRCLE_TAG}" =~ release-.* ]]; then ./deploy_master.sh else echo "do nothing :)" fi deployment:てな具合いに、
- `deployment`の指定で全部のタグを引っ掛けて
- `deploy`の`steps`で実際の処理をする
- そのときにタグをチェックする
っていう手間をかければできます。
Artifactsを出したい
これまた別で、`store_artifacts`っていう項目があるのでそれを使う。
version: 2 jobs: build: steps: - deploy name: Deploy somthing command: | if [[ "${CIRCLE_TAG}" =~ release-.* ]]; then ./deploy_master.sh # ./package になんか作る else echo "do nothing :)" fi - store_artifacts: path: ./package # 作っておいたもの(ディレクトリ or ファイル) destination: package # 必須らしいが名前はなんでもいい deployment:これでOK。
普段の関係ないビルドやタグの場合は、Artifactsで指定したディレクトリに何もできないはずなので、何も起こらない。
公式対応はよーー・・