Open140

GitHub Actionsの歴史を調査(〜2021 / 11)

Futa HirakobaFuta Hirakoba

まずはGitHub Changelog と GitHub Blog を調査

Changelogにactionsタグはあるが、なんか一番古いのがOctober 16, 2019。それより前の情報はタグが無さそう
https://github.blog/changelog/label/actions/

Futa HirakobaFuta Hirakoba

actionsラベルはOctober 16, 2019から着いてると思ったが、全部が全部そうというわけではないらしい。October 17 についてなかったりする。

もう少し地道に見てくしかない

Futa HirakobaFuta Hirakoba

この頃は Changelog にタグがついておらず、探すのに苦労してる
action のタグが最初に確認された 2019 年 12 月までは自力で探すしかない
この頃の Changelog を見てると「Mark as unread」が使えるようになったり Batch Commit ができるようになったりと今では当たり前にできることが新機能として発表されてる。

ベータ版だったからか、2019/01 まで見てもまだ Actions の情報が出てこない

2019/05 まで情報が出てこない。5/23 に Internal repository が beta で登場。結構最近だったんだ。

Futa HirakobaFuta Hirakoba

Event-Specific Details on the Actions tab | GitHub Changelog
https://github.blog/changelog/2020-03-10-event-specific-details-on-the-actions-tab/

ワークフロー一覧が改善。
各ワークフローに紐づけられたコミットメッセージがワークフロー一覧に表示されるようになったり、トリガーの種類が表示されたりと。

この記事もタイトルに GitHub Actions: がない!!Actions はあるけども。視認性が悪い。

Futa HirakobaFuta Hirakoba

GitHub Actions: New workflow features | GitHub Changelog
https://github.blog/changelog/2020-04-15-github-actions-new-workflow-features/

ワークフロー構文に関する大型アップデート。

  • ジョブ・ワークフローレベルで defaults が追加。shell と working_directory をまとめて指定できるように
  • jobs.<job_id>.outputs が追加。ジョブ間で簡単にパラメータを渡せるように
  • jobs.<job_id>.continue-on-error が追加。true にするとジョブがこけてもワークフローが失敗しない。
  • fromJSON() メソッドが追加。JSON オブジェクトをプロパティにバインドできる。たとえば動的なマトリックスビルドワークフローが作れる。
  • github コンテキストに github.repository_owner が追加。リポジトリの所有者を取得できるように。
  • github コンテキストに github.job が追加。job id を取得できるように。
  • steps コンテキストに steps.<step_id>.outcome が追加。continue-on-error 適用のステップの結果(成功か失敗かなど)が取得可能に。
  • steps コンテキストに steps.<step_id>.conclusion が追加。continue-on-error 適用のステップの結果(成功か失敗かなど)が取得可能に。
Futa HirakobaFuta Hirakoba

GitHub Actions: Self-Hosted Runner Group Access Changes | GitHub Changelog
https://github.blog/changelog/2020-10-16-github-actions-self-hosted-runner-group-access-changes/

セルフホストランナーグループのデフォルトアクセス範囲が変更され、「Allow public repositories.」が無効になった。全てのセルフホストランナーグループに対して変更が行われた。

Enterprise Server などで利用する場合は「Allow public repositories.」を有効にする必要がある(当時はまだ GHES に Actions 来てなかったけど)。

Futa HirakobaFuta Hirakoba

GitHub Actions: Workflows triggered by Dependabot PRs will run with read-only permissions | GitHub Changelog
https://github.blog/changelog/2021-02-19-github-actions-workflows-triggered-by-dependabot-prs-will-run-with-read-only-permissions/

Dependabot の Pull Request によってトリガーされるワークフローで使える GITHUB_TOKEN のパーミッションが read-only になった。また、シークレットの読み込み権限は無くなった。サプライチェーン攻撃を防止するため。

これによりリポジトリによっては Dependabot の PR が次々とこけるように。

Futa HirakobaFuta Hirakoba

GitHub Actions: Control permissions for GITHUB_TOKEN | GitHub Changelog
https://github.blog/changelog/2021-04-20-github-actions-control-permissions-for-github_token/

GITHUB_TOKEN の権限を細かく制御できるようになった。デフォルトはこれまで通りほぼ全てが write のまま。ただし、Organization またはリポジトリでデフォルト権限を readread/write(規定値)のどちらかに設定できるようになった。

Futa HirakobaFuta Hirakoba

GitHub Actions: New settings for maintainers | GitHub Changelog
https://github.blog/changelog/2021-07-01-github-actions-new-settings-for-maintainers/

初回コントリビュータからの PR によるワークフロー実行の承認について、設定を細かくできるようになった。

  • 新しい GitHub アカウントかつ初回コントリビュータの場合のみ承認を必要とする
  • 初回コントリビュータに対して承認を必要とする
  • 全ての外部コントリビュータに対して承認を必要とする
Futa HirakobaFuta Hirakoba

GitHub Actions: Ephemeral self-hosted runners & new webhooks for auto-scaling | GitHub Changelog
https://github.blog/changelog/2021-09-20-github-actions-ephemeral-self-hosted-runners-new-webhooks-for-auto-scaling/

使い捨てのセルフホストランナー(ephemeral runner)が使えるようになった。また、ワークフローの状態が変わるたびに飛んでくる workflow_job webhook が登場し、セルフホストランナーのオートスケールがしやすくなった。

Futa HirakobaFuta Hirakoba

GitHub Actions: Jobs running on macos-latest are now running on macOS Big Sur (11). | GitHub Changelog
https://github.blog/changelog/2021-09-29-github-actions-jobs-running-on-macos-latest-are-now-running-on-macos-big-sur-11/

macos-latest が macOS 11 Big Sur を指すようになった。

Futa HirakobaFuta Hirakoba

GitHub Actions: Workflows triggered by Dependabot PRs will respect permissions key in workflows | GitHub Changelog
https://github.blog/changelog/2021-10-06-github-actions-workflows-triggered-by-dependabot-prs-will-respect-permissions-key-in-workflows/

Dependabot のプルリクエストによってトリガーされるワークフローが permissions を尊重するようになった。以前、セキュリティのための変更があってから、Dependabot のプルリクエストによってトリガーされるワークフローは read-only であったため、Dependabot のプルリクエストが CI をパスしなくなるなど色々問題が起こってた。

Futa HirakobaFuta Hirakoba

GitHub Actions: Granular personal access token scopes for self-hosted runners in enterprises | GitHub Changelog
https://github.blog/changelog/2021-10-11-github-actions-granular-personal-access-token-scopes-for-self-hosted-runners-in-enterprises/

Enterprise 内でセルフホストランナーを管理する場合に admin:enterprise スコープを持つパーソナルアクセストークンが必要なくなった。代わりに必要な権限のみとなった manage_runners:enterprise スコープが登場。不要な権限を与えずに済むようになった。

Futa HirakobaFuta Hirakoba

Debugging CodeQL code scanning made easier by retaining diagnostic artifacts in Actions | GitHub Changelog
https://github.blog/changelog/2021-11-17-debugging-codeql-code-scanning-made-easier-by-retaining-diagnostic-artifacts-in-actions/

CodeQL の利用時に問題が発生した際、デバッグを容易にするための設定(debug)が github/codeql-action/init アクションに追加された。有効にすると CodeQL のログや DB などがアーティファクトに保存される。GitHub のサポートから求められる可能性もある。

Futa HirakobaFuta Hirakoba

GitHub Actions: Reusable workflows are generally available | GitHub Changelog
https://github.blog/changelog/2021-11-24-github-actions-reusable-workflows-are-generally-available/

再利用可能なワークフローが GA に。
ベータ版から以下の改善が行われた。

  • 再利用可能なワークフローから呼び出し元ワークフロー内の他のジョブにデータを渡すための output が利用できるように
  • 再利用可能なワークフローに環境変数を渡せるように
  • 利用された再利用可能なワークフローが監査ログに記録されるように
Futa HirakobaFuta Hirakoba

GitHub Actions: Workflows triggered by Dependabot receive dependabot secrets | GitHub Changelog
https://github.blog/changelog/2021-11-30-github-actions-workflows-triggered-by-dependabot-receive-dependabot-secrets/

Dependabot の PR によってトリガーされるワークフローが Dependabot のシークレットを読み込めるようになった。

この頃からできてたような...?GitHub Actions: Workflows triggered by Dependabot PRs will respect permissions key in workflows | GitHub Changelog