# はじめに
GitHub Changelog を元に、GitHub Actions がどのように更新されていったかを簡単にまとめました。
あまり深いところまでは書いてないので、気になった変更があったら各自調べてください(もっと色々書きたかったけど時間なかった)。
わりと雑に作ったので漏れや間違いがあったらコメントとか下さい。
2021/12/01 までの情報をもとにこの記事は書かれています。
この記事は GitHub Actions Advent Calendar 2021 の 1 日目の記事です 🎅🎂
目次
# 歴史
まず、GitHub Changelog をひたすら目 grep して Actions に関わる変更をリスト化し、Zenn のスクラップ(GitHub Actionsの歴史を調査)にまとめました。
そして、その中でも特にエンドユーザに関係ありそうな変更をピックアップしてこの記事に載っけています。
各トピックに貼られているラベルの説明
ラベル名 | 説明 |
---|---|
FEATURE🚀 |
新しい機能 |
BRAKING CHANGE💥 |
破壊的な変更 |
SECURITY🔒 |
セキュリティ向上などセキュリティが理由の変更 |
PW💪 |
Productivity Weekly に詳細を書いたトピック |
各カテゴリの説明
カテゴリ | 説明 |
---|---|
System | GitHubのシステム面での変更(わりとおおざっぱなくくりです) |
Workflow | ワークフロー関係に関する変更 |
Action | アクションに関する変更。公式アクション*1含む |
Environments | Enviromnents 機能に関する変更 |
Runner | ランナーの仕様に関する変更。GitHub-hosted runner は GitHub が提供するランナー。Self-hosted runner はセルフホストランナー。 |
API | Actions を操作する API に関する変更 |
Management | 監査や料金、機能の制限などに関わる変更 |
WebUI | ワークフロー一覧の見た目や検索など、主に WebUI に関する変更 |
## 発表 〜 正式リリース(2018/10 〜 2019/11)
GitHub Actions は 2018 年 10 月に GitHub Universe2018 で発表されました。当時は limited public beta ということで、選ばれしもののみが利用できていたようです。
現在の GitHub Actions は YAML でワークフローの記述を行いますが、発表された当時は GUI 上でのワークフロー構築または HCL(HashiCorp Configuration Language) を使ってワークフローを記述できました(参考:GitHub Actions 入門 - 生産性向上ブログ、GitHub Actions で遊ぶ | matsub)。また、ジョブは Docker コンテナ上での実行のみがサポートされており、Docker イメージを用意する必要がありました。
発表から約半年は音沙汰がなく、2019 年 8 月に新バージョンが発表されます。何がどう変更されたかはもはや公式ドキュメントから見つけられなかったのですが、新 GitHub Actions 入門 - 生産性向上ブログ によると、新バージョンで YAML が使えるようになったことがわかります(HCL が非推奨となることもこの時点で判明していたようです)。
改めて、旧 GitHub Actions と比べて大きく以下の変更がありました。
その後実際に HCL が非推奨を通り越して停止されることが Changelog で広く発表されます。発表が 9/17、停止が 9/30 なので既に本格利用していたところにとってはなかなか大変だったことでしょう。
YAML を利用する GitHub Actions が登場してから正式リリースまでも多数の変更が行われています。正式リリース前なので、大きな変更(BRAKING CHANGES 相当)だけピックアップします。
- Windows ランナーのデフォルトシェルが cmd から PowerShell に変更
- Python 3.4 と Ruby 2.3 がランナーから削除
- ジョブの同時実行数に制限が設けられる(具体的な数字は不明)
- macOS Mojave ランナーが削除。代わりに macOS Catalina ランナーが登場
- スケジュールされたジョブの実行間隔の最小値が 1 分から 5 分に変更
- actions/cache が登場。依存関係をキャッシュできるように
- セルフホストランナーが登場
そして、2019 年 11 月 11 日に GitHub Actions が正式リリースされました。発表から約 1 年でした。正式にリリースされたことで、全てのリポジトリで利用可能になりました。
## 2020
### 1Q + α
ここからは四半期ごとの変更を書いていきます(正直リリース前ほど書くことはないです)。
正式リリースから 2020/1Q の間にあった Changelog を以下にまとめています。`actions/runner リポジトリは今でこそランナー自体の仕様を確認するために見にいくことがありますが、当時はまだ公開されてなかったんですね。API が生えたのもこの頃なので、色々なツールとの連携やセルフホストランナー登録の自動化などが捗ったことでしょう。
#### Workflow
BRAKING CHANGE💥
: ドラフトリリースでrelease
イベントをトリガーしないように
#### Action
FEATURE🚀
,BRAKING CHANGE💥
: actions/download-artifact アクションがアーティファクトダウンロード時にファイルを展開するようにBRAKING CHANGE💥
: actions/aws、actions/gcloud アクションが Deplicated に(その後利用不可となった)
#### Runner
FEATURE🚀
: ランナーのソースコード(actions/runner)がオープンソースに
##### GitHub-hosted runner
BRAKING CHANGE💥
: Windows Server 2016 ランナーが削除BRAKING CHANGE💥
: Ubuntu ランナーにおいて MySQL が自動で起動しないようにBRAKING CHANGE💥
: ランナーから Python 2 が削除
##### Self-hosted runner
FEATURE🚀
: セルフホストランナーが ARM/ARM64 アーキテクチャをサポートFEATURE🚀
: セルフホストランナーがプロキシ環境下で利用可能に
#### API
FEATURE🚀
: GitHub Actions API が登場(正式リリース)FEATURE🚀
,BRAKING CHANGE💥
: workflow run の一覧を返す Actions API がデフォルトで最新のジョブのみを返すように
#### WebUI
FEATURE🚀
: WebUI の Actions タブが見やすくなった
### 2Q
2020/2Q にあった Changelog を以下にまとめています。
1Q と比べて圧倒的に FEATURE🚀
が多いですね。この頃で嬉しかったのはやはりワークフロー周りの変更でしょうか。デフォルトのシェルやワーキングディレクトリーを設定できたり、ジョブ間でのパラメータ引き渡しが簡単になったり、fromJSON
が追加されたりと、高度なことを簡単に描けるようになりました。公式アクションの使い勝手も向上し、体験が良くしてきている印象です。
#### System
FEATURE🚀
: ジョブの成功失敗に関わらず re-run できるように。それまではジョブ失敗時しか re-run できなかった
#### Workflow
FEATURE🚀
: ジョブ・ワークフローレベルでshell
とworking_directory
をまとめて指定できるdefaults
が追加FEATURE🚀
: ジョブ間で簡単にパラメータを渡せるjobs.<job_id>.outputs
が追加FEATURE🚀
: ジョブがこけてもワークフローを失敗させないjobs.<job_id>.continue-on-error
が追加FEATURE🚀
: JSON オブジェクトをプロパティにバインドするfromJSON()
メソッドが追加(たとえば動的なマトリックスビルドワークフローが作れる)FEATURE🚀
: リポジトリの所有者を返すgithub.repository_owner
コンテキストが追加FEATURE🚀
: job id を返すgithub.job
が追加FEATURE🚀
:jobs.<job_id>.continue-on-error
適用前のステップの結果(成功か失敗かなど)を返すsteps.<step_id>.outcome
コンテキストが追加FEATURE🚀
:jobs.<job_id>.continue-on-error
適用後のステップの結果(成功か失敗かなど)を返すsteps.<step_id>.conclusion
コンテキストが追加
#### Action
FEATURE🚀
: アクションにおいてステップ実行前に任意のコードを実行するpre
が利用可能にFEATURE🚀
: actions/upload-artifact アクションにおいて、アップロード時にワイルドカードを利用可能にFEATURE🚀
: actions/upload-artifact アクションにおいて、アーティファクト名(name
)を省略可能にFEATURE🚀
: actions/download-artifact アクションにおいて、全てのアーティファクトを一括ダウンロード可能にFEATURE🚀
: actions/setup-python アクションにおいて、GitHub-hosted ランナーにプリインストールされてないバージョンのインストールが可能にFEATURE🚀
: actions/setup-python アクションにおいて、セルフホストランナーでのセットアップが容易にFEATURE🚀
: actions/cache アクションが V2 となった
#### Runner
FEATURE🚀
,BRAKING CHANGE💥
: ランナーの環境変数にデフォルトでCI=true
がセットされるように
##### Self-hosted runner
FEATURE🚀
: セルフホストランナーに任意のラベルを付与できるカスタムラベルが登場FEATURE🚀
: セルフホストランナーを Organization に対して登録できるようにBRAKING CHANGE💥
: 30 日間接続されてないセルフホストランナーの登録が削除されるように
#### API
FEATURE🚀
,SECURITY🔐
: パーソナルアクセストークンのスコープにworkflow
が追加。権限を絞れるように
#### Management
FEATURE🚀
,SECURITY🔐
: ジョブ実行時のログを削除できるようにFEATURE🚀
: Actions API において、workflow_id
、run_id
ごとにランナーの Billing Usage を取得できるように(Beta)
#### WebUI
FEATURE🚀
: ワークフローテンプレートが利用可能に。Organization 内リポジトリにおいて WebUI の Actions タブから「New workflow」でテンプレを利用してワークフローを作れるように
### 3Q
2020/3Q にあった Changelog を以下にまとめています。
特にワークフローを手動実行できる workflow_dispatch
はとにかく嬉しかったです。重いワークフローは手動実行したいから手動実行がない GitHub Actions には移行出来ないというところも多かったのではないでしょうか。また、composite action が登場したのもこのころです。それまでは JavaScript でやるか Docker でやるかしかなかったので、結構ハードルが高かったです。
#### Workflow
FEATURE🚀
: ワークフローを手動実行できるworkflow_dispatch
トリガーが追加FEATURE🚀
:jobs.<job_name>.container
とjobs.<job_name>.services
において、プライベートレジストリの Docker イメージを利用できるように
#### Action
FEATURE🚀
: 複合実行アクション(composite action)が登場。同じアクションにおいて複数のシェル言語が使えるようにFEATURE🚀
: Dependabot がアクションの更新に対応BRAKING CHANGE💥
: actions Organizations 下のアクションのメインブランチがmaster
からmain
になった。actions/cache@master
のようにバージョンを指定していた場合は、actions/cache@main
に変更しないといけない
#### Runner
##### Self-hosted runner
FEATURE🚀
: セルフホストランナーを Enterprise に対して登録できるようにFEATURE🚀
,SECURITY🔐
: セルフホストランナーをグルーピングできるランナーグループが登場。グループごとにアクセス制御を行えるように
#### API
BRAKING CHANGE💥
: Checks API で利用する Checks において、同じ名前で保存される Check run の数が最大 1000 に制限されるように。超えると古い Check run が削除される
#### Management
FEATURE🚀
: workflow runs を削除可能にFEATURE🚀
,SECURITY🔐
: Enterprise において、リポジトリごとまたは Organization 全体に対して、アクションの利用を制限できるようにFEATURE🚀
: Enterprise の管理者(Admin)が WebUI からアクションの Billing usage を確認できるようにFEATURE🚀
: Actions と Packages の Billing Usage の通知しきい値を超えた場合にメールを送るカスタムリストが作成可能に(個人アカウントと Enterprise に所属していない Organization において設定できる)
#### WebUI
FEATURE🚀
: ログの読みやすさや検索体験が改善
### 4Q
2020/4Q にあった Changelog を以下にまとめています。
大きな BRAKING CHANGE として set-env
、add-path
の廃止がありました。多くのユーザが対応を必要とされた BRAKING CHANGE はこれが初めてではないでしょうか。
ワークフローの可視化もこの時期です。複雑にジョブが絡み合う大規模ワークフローになってくるとジョブの依存関係がもう何が何だかわからなくなってくるので、可視化は必須でした。
そして新しい概念として Environments が登場しました。環境ごとにシークレットや承認者を切り替えられます。例えば環境ごとのシークレットを用意して別の名前をつける、内部で切り替えるなどをしなくてもよくなりましたし、権限のある人だけが本番環境にデプロイできるようにもなりました。楽になって安全性も増す良い機能です。
#### System
#### Workflow
BRAKING CHANGE💥
,SECURITY🔐
:set-env
、add-path
ワークフローコマンドが Deplicated に。ランナーに脆弱性が見つかったため(その後削除)
#### Action
FEATURE🚀
: actions/upload-artifact アクションにおいて、アーティファクトとログの保存期間を指定できるように。デフォルトは 90 日。
#### Environments
FEATURE🚀
: Environments が登場(その後 GA)。environment ごとにシークレットを用意して切り替えたり、ジョブ実行に必要な承認ができるレビュワーを指定できるようになったり。
#### Runner
##### GitHub-hosted runner
FEATURE🚀
: macOS Big Sur ランナーがプレビューで利用可能に(その後 GA)FEATURE🚀
: Ubuntu ランナーのubuntu-latest
が Ubuntu 20.04 を指すように
##### Self-hosted runner
BRAKING CHANGE💥
,SECURITY🔐
: 全てのセルフホストランナーグループにおいて「Allow public repositories.」が無効になった。デフォルト値も無効となるように変更。「Allow public repositories.」が無効の状態だとパブリックリポジトリでセルフホストランナーを利用できない。セキュリティ向上のための変更
#### Management
FEATURE🚀
,SECURITY🔐
: Enterprise、Organization で制限できるアクションの種類を細かく設定できるように(全てのアクションを許可、ローカルアクションのみ許可、指定したアクションのみ許可)
#### WebUI
FEATURE🚀
: WebUI においてワークフローが可視化されるように。ジョブ同士の関係がわかりやすくなった
## 2021
### 1Q
2021/1Q にあった Changelog を以下にまとめています。
いよいよ GitHub Enterprise Server ことオンプレ版 GitHub で GitHub Actions が使えるようになりました。ただしセルフホストランナーを建てる必要があります。そうだとしても GHES 勢待望の更新でした。
Dependabot のプルリクエストによってトリガーされるワークフローで使える GITHUB_TOKEN
のパーミッションが read-only
になりました。また、シークレットが読めなくなりました。この頃はサプライチェーン攻撃が話題になっていた覚えがあります。この変更によって各所では Dependabot によるプルリクが Check を通らなくなってマージできなくなる事件が相次ぎました*2*3(訳あって write なパーミッションが必要なワークフローにかぎる)。
#### System
FEATURE🚀
: GitHub Enterprise Server(オンプレ版)において GitHub Actions が使えるように。セルフホストランナーのみ利用可能FEATURE🚀
,PW💪
: コミットメッセージに[skip ci]
などの文字列を入れることでpush
、pull_request
トリガーによるワークフロー実行をスキップできるようにBRAKING CHANGE💥
,SECURITY🔐
,PW💪
: Dependabot の Pull Request によってトリガーされるワークフローで使えるGITHUB_TOKEN
のパーミッションが read-only に。また、シークレットの読み込み権限は無くなった。サプライチェーン攻撃を防止するため。
#### Action
BRAKING CHANGE💥
,SECURITY🔐
,PW💪
: アクションの ref を指定する際に短い SHA(例:actions/checkout@5a4ac90
)が使えなくなる。セキュリティ向上が理由。
#### Environments
FEATURE🚀
: Environments にデプロイできるブランチを制限できるようにFEATURE🚀
: Environments の作成や保護ルール設定を API でできるように
#### Runner
##### GitHub-hosted runner
BRAKING CHANGE💥
: .NET Core 3.0 が macOS ランナーと Ubuntu ランナーから削除
#### Management
FEATURE🚀
,SECURITY🔐
: ワークフローの実行に関する情報やセルフホストランナーのバージョン更新などが Audit Log に記録されるように
### 2Q
2021/2Q にあった Changelog を以下にまとめています。
ワークフロー/ジョブの同時実行を制限できるようになりました。デプロイなどの同時に動くとまずいワークフロー/ジョブは同時実行したくないので、待望の機能でした。
今まで同一リポジトリの PR だと read/write となっていた、GITHUB_TOKEN
のパーミッションをスコープごとに細かく変更できるようになりました。必要な権限のみを渡すことで安全性を高められます。ただし、互換性のためかデフォルトはほぼ全てのスコープで read/write です。個人的にはデフォルト read-only を基本としてほしいです*4。
外部からの初回プルリクエストに対してワークフローが自動で実行されなくなる変更がありました。これはその頃?に GitHub Actions を悪用した仮想通貨マイニングが問題になってたからです。プールが枯渇して善良なユーザが困るだけでなく、PR を送ってきた fork 先ユーザに責任があるはずですが、fork 元ユーザの責任となってしまうといったことも当時起こっていました。承認が必要になり、ちょっと面倒にはなりましたが、それだけで仮想通貨マイニングを予防できるようになったのでコスパの良い変更だと思いました。
#### System
BRAKING CHANGE💥
,SECURITY🔐
,PW💪
: 初回のコントリビューター(fork 先)からのプルリクエストに対して自動でワークフローが実行されなくなり、メンテナの承認が必要に。仮想通貨のマイニング対策。
#### Workflow
FEATURE🚀
,PW💪
: ワークフロー/ジョブの同時実行を制限するconcurrency
が追加FEATURE🚀
,SECURITY🔐
,PW💪
:GITHUB_TOKEN
の権限を YAML で細かく制御できるように。デフォルトはこれまで通りほぼ全てが write のまま。FEATURE🚀
:discussion
イベント、discussion-comment
イベントをトリガーにできるように
#### Action
#### Runner
##### GitHub-hosted runner
BRAKING CHANGE💥
: Ubuntu ランナーにおいて、.NET SDK の最新パッチリリースのみが含まれるように
#### API
#### Manegement
FEATURE🚀
,SECURITY🔐
,PW💪
: Organization またはリポジトリごとにGITHUB_TOKEN
の権限を WebUI を使って大まかに制御できるように。read
とread/write
(規定値)のどちらか。
### 3Q
2021/3Q にあった Changelog を以下にまとめています。
セルフホストランナーを使い捨てできるようになりました。セルフホストランナーはジョブを走らせるごとに環境をクリーンにしてくれません*5。ワークフローを冪等に保つため、クリーンアップ処理を入れる必要がありました。セキュリティの観点から、Organization やリポジトリごとにランナーを用意する必要もありました。ジョブを実行したらそのまま登録解除すれば良いのでは?となりますが、仕様上それができないようになっていました。3Q でとうとう使い捨てできるオプションが追加され、こういった煩わしさから解放されました。これはセルフホストランナー勢にとって待望の機能でした。
composite action でとうとう他のアクションを呼び出せるようになりました。それまでは uses
が使えなかったので再利用性が乏しかったです。これにより同じような uses
をたくさん書かなくても良くなりました。革命でした。
actions/setup-* アクションにキャッシュ機能が生え始めました。言語や環境ごとにキャッシュする内容は大体似通っているので、似たような actions/cache を毎回書くのは正直おっくうでした。actions/setup-node を皮切りに各 setup 系アクションにキャッシュ機構が追加されていきます。楽になりました。
#### System
FEATURE🚀
: 初回コントリビュータからの PR によるワークフロー実行の承認について、設定を細かくできるように。(新しい GitHub アカウントかつ初回コントリビュータの場合のみ承認を必要とする、初回コントリビュータに対して承認を必要とする、全ての外部コントリビュータに対して承認を必要とする)
#### Action
FEATURE🚀
,PW💪
: 複合実行アクション(composite action)において、他のアクションを呼び出せるようにFEATURE🚀
,PW💪
: actions/setup-node アクションがキャッシュをサポート。actions/cache のステップを書かずとも npm/Yarn のキャッシュを利用できるように。FEATURE🚀
,PW💪
: actions/setup-node アクションのキャッシュ機能がモノレポに対応FEATURE🚀
,PW💪
: actions/setup-node アクションのキャッシュ機能が pnpm に対応FEATURE🚀
: actions/setup-java アクションがキャッシュをサポート。actions/cache のステップを書かずとも Maven/Gradle のキャッシュを利用できるように。
#### Runner
##### GitHub-hosted runner
FEATURE🚀
: Visual Studio 2022 インストール済みの Windows Server 2022 のランナーが Beta で利用できるように(その後 GA)BRAKING CHANGE💥
: Ubuntu 16.04 ランナーが削除FEATURE🚀
,BRAKING CHANGE💥
: macOS ランナーのmacos-latest
がだんだんと macOS Big Sur を指すように。移行期間中、macos-latest
は macOS Big Sur と macOS Catalina のどちらかを指す(参考)
##### Self-hosted runner
FEATURE🚀
,PW💪
-%C2%B7-actions%2Frunner>): 使い捨てのセルフホストランナー(ephemeral runner)が使えるように
#### API
FEATURE🚀
: API を使った workflow run の検索において、作成日でフィルターをかけられるようにFEATURE🚀
,PW💪
: ワークフローの状態が変わるたびに飛んでくるworkflow_job
webhook が登場。セルフホストランナーのオートスケールがしやすくなった
#### Management
FEATURE🚀
,SECURITY🔐
: 監査ログにセルフホストランナー関連のイベントが記録されるようにFEATURE🚀
,PW💪
: ランナーグループの管理機能が強化。ランナーグループの管理やランナーの状態の確認が容易に
#### WebUI
### 4Q
2021/4Q にあった Changelog を以下にまとめています。
OpenID Connect を利用できるようになりました。これにより、対応クラウドサービスのシークレットを GitHub 上に保存しなくても良くなりました。セキュリティが向上するだけでなくシークレットのローテーションもしなくてよくなりとても良いです。
ワークフローをワークフローから呼び出せるようになりました。ジョブ単位ではアクションを利用すればよかったのですが、ワークフロー単位での再利用はそれまでできませんでした。大規模プロジェクトでは必要となりうる機能です。
2021/1Q に Dependabot によるワークフローで使える GITHUB_TOKEN
が read-only になってしまい、回避がめんどかったのです。しかし、2021/4Q で Dependabot によるワークフローが、ワークフロー内の permission
を尊重するようになりました。また、Dependabot もアクセス可能なシークレットを設定できるようになりました。これらによってようやくまともに Dependabot * Actions を使えるようになりました(セキュリティの強度は落ちてしまいますが...)。
#### System
FEATURE🚀
,SECURITY🔐
,PW💪
: OpenID Connect が利用可能に(その後 GA)。クラウドサービス利用をより安全にできるようになったFEATURE🚀
,SECURITY🔐
,PW💪
: Dependabot のプルリクエストによってトリガーされるワークフローがpermissions
を尊重するようにFEATURE🚀
,SECURITY🔐
,PW💪
: Dependabot の PR によってトリガーされるワークフローが Dependabot のシークレットを読み込めるように
#### Workflow
FEATURE🚀
,PW💪
: ワークフローの再利用が可能に。同リポジトリでも他のリポジトリでも利用できるFEATURE🚀
: 再利用可能なワークフローが GA に。ベータ版から以下の改善が行われた- 再利用可能なワークフローから呼び出し元ワークフロー内の他のジョブにデータを渡すための output が利用できるように
- 再利用可能なワークフローに環境変数を渡せるように
- 利用された再利用可能なワークフローが監査ログに記録されるように
FEATURE🚀
,PW💪
:workflow_dispatch
のinputs
において、入力の種類を選べるように。従来の文字列(string
)に加え、セレクトボックス(choice
)、真偽値(boolean
)、Environments(environments
)が入力として使えるようにFEATURE🚀
:branch_protection_rule
トリガーが追加。branch protection の作成、変更、削除時にワークフローを動かせるように
#### Action
FEATURE🚀
: 複合実行アクション(composite action)内のstep
においてif
が使えるようにFEATURE🚀
: github/codeql-action/init アクションに CodeQL の利用時に問題が発生した際、デバッグを容易にするための設定(debug
)が追加。有効にすると CodeQL のログや DB などがアーティファクトに保存される。GitHub のサポートから求められる可能性もあるFEATURE🚀
: キャッシュサイズが 5GB から 10GB に増加FEATURE🚀
: actions/setup-python アクションがキャッシュをサポート。actions/cache のステップを書かずとも pip/pipenv のキャッシュを利用できるように
#### Management
FEATURE🚀
,SECURITY🔐
,PW💪
: Enterprise 内でセルフホストランナーを管理する場合に必要な権限のみを持つmanage_runners:enterprise
スコープが登場。admin:enterprise
スコープを持つパーソナルアクセストークンが必要なくなった。不要な権限を与えずに済むようにFEATURE🚀
: API を使ってセルフホストランナーのラベルを管理できるように
## 2022
### 1Q
2022/1Q に起こる予定の Changelog も書いておきます。
#### Runner
##### GitHub-hosted runner
BRAKING CHANGE💥
: Windows Server 2016 ランナーが 2022/03/15 に削除される予定
# おわりに
GitHub Actions、もう長いこと付き合ってきたつもりでしたが、案外 2019 年中旬に今の形になってたので、まだ 2 年半くらいしか経っていないことに結構驚きました。そうか...まだ 2 年半なのか。
初期の頃はワークフロー可視化がなかったり、手動実行ができなかったり、composite action から composite action が呼び出せなかったり、ジョブの同時実行を制限できなかったりと、大規模プロジェクトでの利用はまだまだ難しそうとか思っていました。が、それらの機能はあっという間に実装されていきました。今回調べてみて改めて機能追加の頻度に驚きました。
それでもまだまだ欲しい機能がたくさんあります。
- 失敗したジョブのみの Re-Run ← 特にこれ!!
- GitHub-hosted runner のインスタンスサイズの拡充
- GHES でのキャッシュサポート
- etc..
これらは github/roadmap にすでに登録されているので、そのうち実装される予定です。楽しみですね。
今回、とりあえず登場から 2021/12/01 までの GitHub Actions の変更をリストアップしました。
気が向いたらまた更新するかもしれません。
*1:actions/cache や actions/setup-node などの actions organization 配下のアクション。
*2:Dependabot PRs and Workflow Secrets - Code to Cloud / GitHub Actions - GitHub Support Community
*3:Dependabot が起動する GitHub Actions Workflow から write 権限が無くなった件
*4: 一応リポジトリごと、Org ごとに一括でデフォルト権限を設定できるようにはなってます。
*5:apt-get でインストールしたコマンドが入ったまま、作ったファイルが置かれたままなど