やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

GitHub Actionを調べる

 CIツール的な何か。

きっかけ

 2019-11-14、GitHubを使っていると以下のようなポップアップが出た。

f:id:ytyaru:20191115224611p:plainf:id:ytyaru:20191115224617p:plainf:id:ytyaru:20191115224626p:plainf:id:ytyaru:20191115224633p:plain

GitHub Action とは?

 継続的インテグレーション (CI) 。プロジェクトをビルド、テスト、パッケージ、リリース(デプロイ)するための自動化システムである。

継続的インテグレーション (CI) とは?

コードを頻繁に共有リポジトリにコミットする手法のこと

 コードのビルドとテストを継続的に行うらしい。つまりコミットするたびにビルドとテストを自動的にしてくれるってことか?

方法

 以下の2種類あるらしい。

  • ローカル: ローカルでビルドとテストをしてからリポジトリにpushする
  • サーバ: コミットしたらサーバでビルドとテストを行う

 GitHub Actionはデフォルトでサーバ実行らしい。

ステータス・バッジ

https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_NAME>/badge.svg
https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_FILE_PATH>/badge.svg

 以下はステータスバッジを追加するMarkdownコードである。Greet EveryoneというWORKFLOW_NAMEの。

![](https://github.com/actions/hello-world/workflows/Greet%20Everyone/badge.svg)

 以下はWORKFLOW_FILE_PATHを用いた時の場合。

![](https://github.com/actions/hello-world/workflows/.github/workflows/main.yml/badge.svg)

制限

GitHub plan Total concurrent jobs Maximum concurrent macOS jobs
無料 20 5
Pro 40 5
Team 60 5
Enterprise 180 15

 禁止事項は以下。

 以下がよくわからなかったので少し調べた。

禁止事項 概要
クリプトマイニング 無断で相手のPCリソースを使い、自分の電子マネーを増やすべくマイニングすること
サーバーレス・コンピューティング クラウド・コンピューティングの実行形態。クラウドはネットを介してコンピュータ資源を提供するサービスのこと。サーバレスは、コンピュータ資源の消費に応じて対価を要求するサービスのこと。

 ようするにGitHubActionを使って金儲けするなってことか。禁止事項にある「プロジェクトの製造、テスト、デプロイ、公開に関連しないその他の行為」を理解していればよかっただけだな。

 クリプトマイニングを調べたら非常に恐いことがわかった。別記事にする。

作成方法

 これ、ちょっと大変そう。別記事で一つずつ試してみよう。

所感

 もうWebサービス使うのが恐いし面倒すぎ。ふつうにローカルでビルドコマンドスクリプト使ったほうが早くね? とか思ってしまった。

 でも、どこにどんな価値や危険があるかもわからない。知らなかったで済むかどうかは、知ってみねばわからないという矛盾。結局、知らなければ奪われるかもしれないという恐怖に踊らされる。疲れるんだよ、そういうの……。

所感

アカウントのすべてのリポジトリで同時に実行できるジョブの数は、GitHubプランによって異なります。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux