かえるのプログラミングブログ

プログラミングでつまずいたところとその解決策などを書いていきます。

GitHub Actions (GHA) に入門した

ブログのモチベーション

社のつよつよな同僚がすでに設定してくれていたワークフローをポチポチしたり、手順書にしたがってワークフローを編集する pull request を出すことはあった。

1から自分でできるだろうか、身についているだろうかという不安があったのでドキュメントを見ながら手を動かしてみた。

GitHub Actions

概要は公式 documentに詳しい。

GitHub Actions を利用するモチベーション

人間は手順書通りにやっても間違える。(N敗)

デプロイやコードの静的解析や単体テストといった繰り返し実行する必要のある手順を再現可能なワークフローとして管理できると安心できる。

2024年現在、GitHub でコード管理する現場はとても多い。GitHub 上でワークフローも定義して運用できるのは使いやすくて良い。

やった内容

入門に際して、公式で提供されているこちらのサンプルワークフローを追実装した。

サンプルでは Node.js をインストールしているが、筆者は python をよく利用するので pythonHello world を print する .py ファイルを書き出し、それを実行するように変更した。

name: learn-github-actions # ワークフローの名前、Actions タブにこの名前で表示される。
run-name: ${{ github.actor }} is learning GitHub Actions
on:
  workflow_dispatch: # Actions タブからポチポチでできるようになる。

jobs:
  check-python-version:
    runs-on: ubuntu-latest # github が提供するホストマシンのうち最新の ubuntu を指定
    steps:
      - uses: actions/checkout@v4 # リポジトリを runner が使えるようにするおまじない。コードに対して build とか test とかできるようになる。
      - name: hello world python file
        run: echo "print('Hello world')" > hello.py # Hello world を print するだけの hello.py を作成。
      - uses: actions/setup-python@v5 # job で python を使うためのおまじない。
        with:
          python-version: '3.10' 
      - run: python -v
      - run: python hello.py # Hello world を stdout に出力 

できたもの

まとめ

GitHub Actions に入門し、簡単なポチポチで実行できるワークフローを組めた。 今回は Actions タブからのポチポチで起動して Hello world を標準出力するだけのシンプルなものだったが、git の push や pull request や別のワークフローの実行終了などもできるらしい。 repository template にも組み込んで、kaggle の実装でも静的解析や型検査を使っていきたい。

参考にした URL