GitHub社は10/16~17に年次イベントであるGitHub Universe 2018において、GitHub Actionsという新機能の発表を行いました。
目次
GitHub Actionsとは(要約)
Dockerコンテナを利用し、開発者のワークフローを自動化するサービスです。
もっと簡単に言うとGitHubや外部ツールのAPIを活用するコード(ここではアクションと呼ぶ)を、実行順序を指定して実行するという仕組みです。
Dockerとは
そもそもDockerとはなんなのでしょうか。
Wikipediaにはこう書いてあります。
Docker(ドッカー)はコンテナ型の仮想化環境を提供するオープンソースソフトウェアである。VMware製品などの完全仮想化を行うハイパーバイザ型製品と比べて、ディスク使用量は少なく、仮想環境 (インスタンス) 作成や起動は速く、性能劣化がほとんどないという利点を持つ。[1]
ざっくり言うと自分のPC上にさらにもう一つOSを立ち上げて好きな環境を作ってしまおうというものです。また従来の仮想環境と違うのはそれが比較的軽い環境ということです。
Dockerには大きく分けて3つの利点があります。
資源の効率化
従来の仮想化とは異なり、OSをまるごとインストールする必要がなく、PCの資源(リソース)の無駄遣いを減らすことができます。
アプリ実行環境構築の容易さ
アプリケーションとライブラリを同一のコンテナ内に固めます。そして一度固めたコンテナは軽量であるため移動が容易であり、比較的どの環境でも素早く目的のアプリケーションを動作させる事が可能です。
廃棄の容易さ
設定を間違えたときに簡単に廃棄/前の状態に戻ることができます。
GitHub Actionsワークフロー
GitHub Actionsは以下の図のようなワークフローとなります。
(図はhttps://github.com/features/actionsをgoogle翻訳で和訳したものです)
GitHub Actionsで何が嬉しいか
さまざまな動作を組み合わせ可能
ワークフロー内のアクションとしてDockerコンテナを実行できるため、コードのビルドやテストの実行、クラウドへのデプロイなど、GitHubの機能にとらわれない、さまざまな動作を組み合わせることができます。[2]
シェアされているアクションが再利用可能
アクションに対応するDockerコンテナはGitHub内でシェアでき、それを使用できるため、一般的なワークフローで利用するアクションを自身で作成する必要がありません。
ビジュアルにワークフローを定義できる
ユーザーは以下のようにビジュアルにワークフローを定義できます。[3]
GitHub Actionsを使用すると、コンテナに接続して共有することでソフトウェア開発のワークフローを実行できます。 つまりコードを自分で実行することなく、プロジェクトを任意の言語で簡単に構築、パッケージ化、リリース、更新、展開することができるというものということだそうです。
他にも様々なメリットがあるようです。もしすでに使用していて「こんな機能もあるよ!」という方がいらっしゃれば @hikaruya までぜひお知らせください。(筆者はβ版に申し込んだものの現在承認待ち中です)
またもし認識違い等ありましたら、ご指摘いただければ幸いです。
まずはGitHubを使い倒そう
今回はGitHubの新機能であるGitHub Actionsについて簡単に紹介してみました。GitHubを所属先や個人で頻繁に使用されている方もいれば、そうでない方もいると思います。
GitHubは非常に使いやすく、かつ転職やフリーランス/副業案件をゲットする際には自身のアピールポイントとなります。ぜひ使い倒してポートフォリオの一部としてしまいましょう!
Findyでは、GitHubのアカウントを連携し、スキル偏差値 というプログラミングスキルの「見える化」をすることで、フリーランス/副業向け案件の受注・中途転職のサポートを行っています。GitHubを使用している方はぜひ一度登録していただければ幸いです。
フリーランス/副業向け案件をお探しの方はこちら:
フリーランス・副業エンジニア向け単価保証型の案件紹介サービス Findy Freelance
中途転職をお考えの方はこちら:
ハイスキルなエンジニアのプレミアム転職サービス Findy
(筆者: @hikaruya)
引用
[1] https://ja.wikipedia.org/wiki/Docker
[2] https://www.publickey1.jp/blog/18/github_actionsdockergithub_universe_2018.html
[3]https://blog.github.com/2018-10-16-future-of-software/