2021-01 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2021-01-16 (土)

tfupdate orb の circleci/orb-tools を v8.27.5 から v10.0.3 にアップデートした [CircleCI]

[2019-12-20-1] で circleci/orb-tools を解説しました。リリースフローがよく出来ていたので、感動した記憶があります。

CircleCI-Public/orb-tools-orb

Various tools for authoring and publishing CircleCI orbs



しかし、記事を書いた時にはすでに v9.0.0 がリリースされており、それはそれは大きな BREAKING CHANGES でした...。

やる気が出なかったので、tfupdate orb で使っているバージョンはずっと据え置いていましたが、今日急にやる気になったので、最新の v10.0.3 にアップデートしました。

当該 PR はこちらです。.circleci/config.yml がかなり短くなりました。
https://github.com/masutaka/circleci-tfupdate-orb/pull/2

公式ドキュメントcircleci/orb-tools のドキュメントはありますが、よく分からないのと、今までの経緯からあまり信用できないので、v10.0.3 のコードリーディングをして理解しました。

circleci/orb-tools 自身の .circleci/config.yml も読みました。結果的にここまで複雑にする必要はなかったです。
https://github.com/CircleCI-Public/orb-tools-orb/blob/v10.0.3/.circleci/config.yml

今までは master ブランチに commit するたびに orb のバージョンが自動的に上がっていきました。セマンティックバージョンの制御はできません。

現在はその commit message によって、orb バージョンを半自動的に上げられるようになりました。セマンティックバージョンを制御可能です。


v8.27.5 で振る舞い


master ブランチに commit が追加された時、src/commands または src/jobs 以下が変更されていれば minor version が、それ以外の変更では patch version が自動的に上がりました。major version はサポートされていませんでした。

何も考えずに済んだので楽ではありましたが、制御できないのは不満があったのかもしれません。

v10.0.3 での振る舞い


master ブランチに commit が追加された時、当該 commit message に以下の文字列が含まれていれば()、その指定に従ってバージョンが上がります。

[semver:major]
[semver:minor]
[semver:patch]

必須パラメータ publish-version-tag が true の時は git tag も push してくれます。

含まれている文字列が [semver:skip] の時はバージョンは上がりません。

どれも含まれていない場合、必須パラメータ fail-if-semver-not-indicated によって、CI の成功/失敗を制御できます。私は false にしましたが、厳格にしたい時は true にすると良いと思います。

覚えている自信はありませんが、この記事が未来の自分への助けになることでしょう。

他に、必須パラメータ add-pr-comment を true にすると、紐づく PR にコメントを追加してくれるようです()。私は false です。

P.S.
公式ドキュメントや circleci/orb-tools 自身の .circleci/config.yml では orb-tools/trigger-integration-tests-workflow job を使って、新しい workflow をトリガーしていますが、その必要は感じなかったので、1 つの workflow の中で lint や publish を全部やりました。公式の例では .circleci/config.yml の中からは pipeline.parameters.run-integration-tests が true になるタイミングの理解が非常に分かりづらくて、無駄に複雑な workflow を書いてしまうと思いました。

2021-01 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

検索


最近の話題
- 2021-02-22
  『達人に学ぶSQL徹底指南書 第2版』を読んだ
- 2021-01-22
  pushover orb のメンテナーになった
- 2021-01-16
  tfupdate orb の circleci/orb-tools を v8.27.5 から v10.0.3 にアップデートした
- 2021-01-05
  思考を寝かせて、優先順位を決めるための「やるかもしれないリスト」がとてもうまくワークしている
- 2020-12-20
  『データマネジメントが30分でわかる本』を読んだ
- 2020-12-03
  優先度より優先順位のほうが偉い
- 2020-11-10
  『理論から学ぶデータベース実践入門』を読んだ
最近追記された記事
- 2021-01-05-1 (26日前)
- 2014-11-02-2 (344日前)
- 2020-01-22-1 (350日前)
- 2019-02-11-1 (524日前)
- 2019-02-03-1 (524日前)
- 2019-01-28-1 (524日前)
- 2019-02-03-1 (566日前)
- 2018-11-28-1 (580日前)
- 2019-05-07-1 (660日前)
- 2018-04-30-1 (675日前)
カテゴリ
- Android (2)
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (24)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (4)
- Book (112)
- Boxen (2)
- Bugsnag (1)
- capistrano (4)
- chalow (57)
- ChatWork (1)
- Chef (17)
- Chrome (3)
- Chromecast (1)
- CircleCI (15)
- clang (26)
- Comics (2)
- Cooking (10)
- cvs (15)
- cygwin (12)
- D3.js (1)
- Debian (55)
- Docker (5)
- E-mail (9)
- elasticsearch (4)
- Emacs (225)
- Emacs講座 (10)
- English (4)
- feedforce (7)
- fetchmail (3)
- Firefox (20)
- Fluentd (4)
- ftp (2)
- Game (21)
- GCP (1)
- Gem (5)
- Git (9)
- GitHub (23)
- golang (11)
- Google (1)
- gpg (4)
- GrowthForecast (7)
- Health (7)
- Heroku (21)
- Homebrew (10)
- HTML (6)
- iBook (1)
- iOS (1)
- iPad (1)
- iPhone (17)
- IRC (1)
- Jenkins (8)
- JS (1)
- Karabiner (1)
- KeySnail (3)
- Kibana (1)
- Kindle (1)
- Kubernetes (2)
- Langrich (7)
- LDAP (6)
- Life (24)
- Linux (7)
- Mackerel (1)
- macOS (1)
- Mew (18)
- MongoDB (1)
- Mozilla (19)
- Music (1)
- MySQL (1)
- NAS (4)
- nginx (6)
- NHK (1)
- Node (1)
- ntp (4)
- OOP (2)
- OpenID (2)
- openssl (1)
- Opera (2)
- OSX (41)
- Perl (14)
- PHP (19)
- PostgreSQL (1)
- procmail (4)
- Programing (3)
- Puppet (1)
- Python (2)
- Rails (13)
- Rake (2)
- RaspberryPi (2)
- Redash (1)
- RedHat (29)
- Redmine (3)
- RSpec (2)
- Ruby (54)
- samba (3)
- screen (7)
- sed (5)
- serverspec (6)
- sh (8)
- Slack (4)
- Solaris9 (22)
- Spring (2)
- SQL (4)
- ssh (4)
- StatusNet (21)
- svn (12)
- Swift (1)
- Tablet (1)
- tdiary (3)
- Terraform (3)
- Twitter (15)
- Twmode (6)
- Ubuntu (5)
- UNIX (102)
- vagrant (8)
- Video (21)
- vim (1)
- Wercker (9)
- Windows (29)
- Wine (3)
- XML (11)
- XP (1)
- zsh (26)
- インストールメモ (33)
- クイックシェイプ (12)
- ネタ (15)
- 勉強会 (19)
- 携帯 (6)
- 正規表現 (4)
過去ログ
2021 : 01 02 03 04 05 06 07 08 09 10 11 12
2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12