現在のGitHub Actionsのホストランナー別AWSCLIバージョン及び各インストール手段について調べてみた
GitHub Actions上でAWSCLIを使う場合、ActionあるいはShellScriptベース、Dockerにて追加インストールが必要だと思いこんでいました。使っていたWorkflowの見直しついでに現状を確認すると、一部OSを除いては最新バージョンを常に追いかけたい時を除いては追加インストールする必要はないかも、と。
各host runnerでのバージョン、及びActionや公式Docker等でインストールするのはどういった時が好ましそうなのか、調べて確認した内容をまとめてみました。
host runner別のツールバージョン
記事執筆時点で、GitHub Actionsのrunner os別にインストールされているAWSCLI及び関連CLIのバージョンは以下の通り。常にAWSCLI v2の追加インストールに迫られるのはUbuntuの16.04か18.04を使っている場合のみです。
AWSCLI のhost runner別バージョン
runner-os | version |
---|---|
Ubuntu 16.04 | 1.19.84 |
Ubuntu 18.04 | 1.20.21 |
Ubuntu 20.04 | 2.2.29 |
macOS 10.13 | 2.1.37 |
macOS 10.14 | 2.2.29 |
macOS 10.15 | 2.2.29 |
macOS 11.5 | 2.2.29 |
Microsoft Windows Server 2016 Datacenter | 2.2.29 |
Microsoft Windows Server 2019 Datacenter | 2.2.29 |
Microsoft Windows Server 2022 Datacenter | 2.2.30 |
AWS CLI Session manager plugin のhost runner別バージョン
runner-os | version |
---|---|
Ubuntu 16.04 | 1.19.84 |
Ubuntu 18.04 | 1.2.234.0 |
Ubuntu 20.04 | 1.2.234.0 |
macOS 10.13 | 1.2.30.0 |
macOS 10.14 | 1.2.234.0 |
macOS 10.15 | 1.2.234.0 |
macOS 11.5 | 1.2.234.0 |
Microsoft Windows Server 2016 Datacenter | 1.2.234.0 |
Microsoft Windows Server 2019 Datacenter | 1.2.234.0 |
Microsoft Windows Server 2022 Datacenter | 1.2.245.0 |
AWS SAM CLIのhost runner別バージョン
runner-os | version |
---|---|
Ubuntu 16.04 | 1.19.84 |
Ubuntu 18.04 | 1.27.2 |
Ubuntu 20.04 | 1.27.2 |
macOS 10.13 | 1.22.0 |
macOS 10.14 | 1.27.2 |
macOS 10.15 | 1.27.2 |
macOS 11.5 | 1.27.2 |
Microsoft Windows Server 2016 Datacenter | 1.27.2 |
Microsoft Windows Server 2019 Datacenter | 1.27.2 |
Microsoft Windows Server 2022 Datacenter | 1.28.0 |
公式Dockerイメージが有効なシーンについて
以下の要件を満たす場合は、公式のDockerイメージをおすすめします。
- 常にv2の最新版にしたい
- awscliのコマンド実行頻度がそれほど高くない
利用時は run
にて。末尾に実行するawscliのコマンドをいれます。以下はLinuxの場合。
- name: s3 ls run: docker run --rm -i -v ~/.aws:/root/.aws amazon/aws-cli aws s3 ls
ドキュメントに指定されているコマンドをそのまま使うと、以下のエラーとなるため注意が必要です。
the input device is not a TTY
Action経由でのインストール
実装にもよりますが、メジャーなActionは公式インストーラをダウンロードしてくるものがほとんどです。
action-aws-cli
AWSCLI v1用の公式インストーラをダウンロード、及びインストールします。OS毎の違いを吸収してくれるため、host runnerにどれを選んでも問題ないのがポイント。
最新のAWSCLIはv2となっているため、リポジトリはArchiveされています。
install-aws-cli-actions
指定されたバージョンのAWSCLIをダウンロード、及びインストールします。現時点ではv1系とv2系の指定のみに対応。利用する場合のメリットは以下の通り。
- 該当バージョンがあるかどうかのチェックがある
- Amazon Lightsail コンテナサービスプラグインのインストールもオプションで可能
- Lightsail コンテナサービスプラグインのインストールを行った場合の正常インストールチェックを行う
- AWSCLIが既にインストールされている場合は、アップデートに切り替える
Ubuntu 16.04か18.04を使っている場合に、Dockerでの実行スタイルが気に入らない時には必須かもしれません。
あとがき
Ubuntu 16.04 の host runnerは除外アナウンスが出ています。未だ利用している場合は18.04に上げる等早めに対応しましょう。Ubuntu 16.04 environment will be removed on September 20, 2021
Ubuntu 18.04以外を利用している場合は、常に最新ではないもののGitHub側が定期更新しているためそれほど気にする必要はなさそうです。18.04を使っている場合は20.04へアップデートする動機の一つに使うのも手かもしれません。