2019年8月28日水曜日

[Travis CI] Addons apt のリトライ設定

travis-ciにtravis_retryという失敗しても何度かリトライする機能があるらしい件 - xuwei-k's blog
Common Build Problems - Travis CI

Travis CI には 'travis_retry' コマンドが用意されているので、script でのリトライ対応はできるのですが、Addon の場合でもできないのか調べました。




答え:できる
For a more resilient apt operations, add retries by BanzaiMan · Pull Request #1343 · travis-ci/travis-build

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
      - llvm-toolchain-xenial-8
      - llvm-toolchain-xenial
    packages:
      - clang-8
      - g++-9
      - gcc-9
    config:
      retries: true
https://github.com/srz-zumix/iutest/pull/279

2019年8月23日金曜日

[GitHub Actions] 公式 Badge を付ける

旧 GitHub Actions ではバッジがなくて、以下を利用させて頂いていたのですが、
CultureHQ/github-actions-badge: A GitHub Actions README badge

最近バッジ表示できないなーと思っていて、リポジトリを覗きに行ったら
公式のバッジが取得できることを知りました!

(ドキュメントはまだないっぽい)

Markdown だとこうなります。
[![Actions Status](https://github.com/{owner}/{repo}/workflows/{workflow_name}/badge.svg)](https://github.com/{owner}/{repo}/actions)

ブログズミ: 新しい GitHub Actions に移行しました
先日の記事でバッジ早くくれ!と言ってましたが、もうありました!!
お詫びして訂正いたしますm(__)m

やったぜ!


※ブランチ指定はまだできない?検証中

2019年8月21日水曜日

新しい GitHub Actions に移行しました


GitHub Actions now supports CI/CD, free for public repositories


新しい GitHub Actions が使えるようになっていたので、
iutest のワークフローを 旧 GitHub Actions から移行しました。
migrate github actions by srz-zumix · Pull Request #274 · srz-zumix/iutest

HCL な main.workflow から YAML への変換
以前の GitHub Actions は HCL というフォーマットを採用していましたが、新しい GitHub Actions は他の CI サービスと同様に YAML での configuration になりました。
HCL だとどう書くんだろ?といちいち調べる手間が減るので地味に嬉しい変更です。
ただここで、HCL で書かれた workflow を YAML に直す手間が必要になるのですが・・・



さすが GitHub 、ちゃんと Migration tool を用意してくれていました!
Migrating GitHub Actions from HCL syntax to YAML syntax - GitHub Help

手順は至って簡単で、
ツールをダウンロード・展開したら、目的のリポジトリ下でツールを実行するだけです。
(ブランチ切り替えとかも含めて丁寧に説明されていますので、手順は上のリンクから確認してください)

手順どおりに行えば一瞬で移行が完了します。



自動変換後に調整したこと
ジョブを分けた


以前の GitHub Actions ではアクションごとにステータスがついていたのですが、新しい GitHub Actions でジョブごとにステータスがつくようでした。
変換した YAML ではアクションがすべて 1つのジョブにまとめられていたので、前と同じステータス通知になるようにジョブを分けました。
https://github.com/srz-zumix/iutest/pull/274/commits/b9cbdc04b6620c210e03c10085ec949092e94e9d


チェックアウト
ジョブを分けたら、それぞれにチェックアウトステップが必要でした。
各ジョブの steps に 「uses: actions/checkout@master」を追加しましょう。

steps:
    - uses: actions/checkout@master


通知設定の変更
新しい GitHub Actions になったからなのか、いつぞやからかメールで通知が来るようになっていたので無効化しました。
https://github.com/settings/notifications を開くと「GitHub Actions」の項目があるのでそちらで設定します。


「Web」にすると、GitHub の右上のベルマークのところに通知が飛ぶようになります。



変わったこと
新しい GitHub Actions に変わって大きく変わったのは
* YAML になったこと
* Windows / Mac OS が使えるようになったこと
でしょうか。

Windows や Mac OS でのテストは現在は他の CI サービスを使っているので、近々で試すことはないかもしれませんが、これらをサポートする CI サービスもだいぶ増えた印象です。
各 CI サービスがどの OS を使えるか、以下のリポジトリで個人的にまとめているので興味がある方はどうぞ。(PR お待ちしてます)
https://github.com/srz-zumix/ci-specs/blob/master/README.md#build-environment

最後に
2019/8/23 追記
ドキュメントにはまだ書かれてないようですが、すでにバッジをつけることはできてましたmm
ブログズミ: [GitHub Actions] 公式 Badge を付ける

早くバッジください