Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

GitHubのActionsについてまとめています。

GitHubのActionsとは

GitHubのActionsは、ツールと連携して開発ワークフローを自動化する仕組みです。

システムのビルドとデプロイを行うCI/CD(Continuous Integration/Continuous Delivery。継続的インテグレーション/継続的デリバリー)を自動化できるんですね。

フックイベントと呼ばれるトリガーが発生すると、あらかじめ定義しておいた処理が起動されます。GitHubのactionsではHCL(HashiCorp Configuration Language)ベースの言語でトリガーに対するジョブ設定を記述できます。

GitHubで用意されている「Java環境のセットアップをおこなう」「Python環境のセットアップをおこなう」「GitHubのリリース機能でファイルを公開」「リリースを作成」などのactionのほか、独自にactionを開発可能。マーケットプレイスでは、ユーザが定義した独自のactionが公開されています。

参考)GitHub Marketplace · to improve your workflow

GitHub Actionsの機能の例

例えば、Pythonの実行環境をセットアップするSetup Pythonは、PythonとPyPy(Pythonコードをコンパイルして高速化する)のバージョンを指定した実行環境をセットアップしたコンテナが起動します。

以下のようにジョブを記述することで、OSはubuntu、pythonのバージョンは2.x、3.x、pypy-2.7、pypy-3.6、pypy-3.7と順に実行環境を変えて、python my_script.pyを実行することができます。

  1. jobs:
  2. build:
  3. runs-on: ubuntu-latest
  4. strategy:
  5. matrix:
  6. python-version: [ '2.x', '3.x', 'pypy-2.7', 'pypy-3.6', 'pypy-3.7' ]
  7. name: Python ${{ matrix.python-version }} sample
  8. steps:
  9. - uses: actions/checkout@v2
  10. - name: Setup python
  11. uses: actions/setup-python@v2
  12. with:
  13. python-version: ${{ matrix.python-version }}
  14. architecture: x64
  15. - run: python my_script.py

my_script.pyで機能テスト用のスクリプトを記述しておけば、指定したpythonのバージョン全てで自動的にテストが実行できるんですね。結果として、python 3.xでは問題なく動くが、python2.xでは実行時にエラーになる、などといったことが自動テストでわかります。

Actionsをワークフローに組み込むことで、実行結果を一覧画面で確認できます。緑地にチェックの入ったアイコンは、ワークフローが問題なく実行されたことを表しています。

なお、ワークフローはテンプレートをベースにしてカスタマイズできます。デフォルトではubuntu最新版の環境を立ち上げ、「Hello world!」と表示する内容になっています。

  1. # This is a basic workflow to help you get started with Actions
  2.  
  3. name: CI
  4.  
  5. # Controls when the action will run.
  6. on:
  7. # Triggers the workflow on push or pull request events but only for the master branch
  8. push:
  9. branches: [ master ]
  10. pull_request:
  11. branches: [ master ]
  12.  
  13. # Allows you to run this workflow manually from the Actions tab
  14. workflow_dispatch:
  15.  
  16. # A workflow run is made up of one or more jobs that can run sequentially or in parallel
  17. jobs:
  18. # This workflow contains a single job called "build"
  19. build:
  20. # The type of runner that the job will run on
  21. runs-on: ubuntu-latest
  22.  
  23. # Steps represent a sequence of tasks that will be executed as part of the job
  24. steps:
  25. # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
  26. - uses: actions/checkout@v2
  27.  
  28. # Runs a single command using the runners shell
  29. - name: Run a one-line script
  30. run: echo Hello, world!
  31.  
  32. # Runs a set of commands using the runners shell
  33. - name: Run a multi-line script
  34. run: |
  35. echo Add other actions to build,
  36. echo test, and deploy your project.

echo Add other actions to build, echo test, and deploy your project.の箇所に、自動ビルドや自動デプロイのためのアクションを記述します。

GitHubのActionsの利用制約

自由度が高いものの、同時実行できるワークフローや並列実行できるジョブ数、ジョブの実行時間に制限があります。

関連)使用制限、支払い、管理 – GitHub Docs

GitHub Actionsはパブリックリポジトリとセルフホストランナーでは利用無料。プライベートリポジトリの場合はプランによって制限が変わります。

GitHubのActionsのまとめ

ポテパンダの一言メモ
  • GitHubのActionsは、ソースコードのビルド、テストデプロイを自動化するためのしくみ
  • Actionsには、GitHubが用意したもののほかに、ユーザが定義したものがマーケットプレイスで入手可能
  • Actionsのワークフローやジョブには利用制限があり、利用プランにより制限が異なる

 

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。