☁️
Cirrus CI のメモ(arm build が使える!)
Github Actions だと arm ビルドは qemu での emulation なので遅くてつらい...
Arm native 対応の CI ははいくつかありますが, ここでは OSS であれば free な Cirrus CI つかいます!
Arm Windows は未対応です.
セットアップ
特に面倒なことはありません.
arm ビルドの場合, arm な image 指定するだけで OK です.
メモ
Encripted token
Cirrus CI の app(サイト) でハッシングして、それを ci script に埋め込みます.
env:
GITHUB_TOKEN: ENCRYPTED[ABC]
コマンドラインで twine upload --password ENCRYPTED[...]
だとうまく解釈されないようです. 環境変数を設定するときしかうまくパースできないかも?
release のときだけなにかやる
only_if: $CIRRUS_RELEASE != ''
or
only_if: $CIRRUS_TAG != '' # run only on tags
頑張れば正規表現できるようですが, github actions のように startsWith みたいなのは無いようです.
タスク依存関係
depends_on
で指定します.
depends_on:
- Test
- Lint
artifact が task 間で共有されるかは... 要検証.
まとめ
たぶんだいたい必要なことはできます...
ただ, yaml がめんどい...
とりあえずは arm ビルドだけ Cirrus CI 使い, ほかは Github Actions など使う, で共存利用がいいかも!
Discussion