GitHub

【GitHub Actions】プログラムの実行結果を自動でリポジトリーにプッシュする方法

ここ最近、CI/CDはGitHub Actionsをガンガン活用しています。

条件を満たせば無料で使用できるうえ、慣れればやりたいことがガンガンできるので、個人利用する分には割と最強だと思っています。

本記事ではGitHub Actionsでcommitとpushをする方法を備忘録として残しておきます。

GitHub Actionsを使用できるようにする

GitHub ActionsはCI/CDをするには非常に便利です。

使用するにはGitHubのアカウントを持っていることと、CI/CDを実行したいプログラムのリポジトリーをGitHubに作成している必要があります。

GitHub Actionsは、GitHubのアカウントやリポジトリーの状況によって料金が変わります。

無料アカウントを使用して、publicリポジトリーを使用する場合は無料です。

無料アカウントかつ、privateリポジトリーを使用する場合は月間2000分までは無料です。

2000分を超えると自動で課金にはならず、CI/CDが動かなくなります。その状態から動かしたい場合は料金を払う必要があります。

とはいえ個人利用であれば2000分もあれば大抵足りるでしょうし、こだわりがなければpublicリポジトリーをを使えば完全無料です。

超ヘビーユーザーでない限りは無料で使用可能でしょう。

workflowファイルを作成する

リポジトリーの準備が整ったら、いよいよCI/CDが動くように「workflowファイル」を作成します。

リポジトリーのタブにある「Actions」をクリックし、「set up a workflow yourself」をクリックします。

すると、workflowを記述するページに遷移します。

jobs: build: steps: でCI/CDの処理を書いていきます。

本題である、「プログラムの実行結果をリポジトリーにプッシュする」ために、プログラムを実行するような処理を書きます。

その後で以下のようにjobs: build: steps: に書くことでプログラムの実行結果をリポジトリーにプッシュすることができます。

- name: Commit and Push
  run: |
    git add -N .
    if ! git diff --exit-code --quiet
    then
      git config user.name "your name"
      git config user.email "your mailaddress@yourma.com"
      git add .
      git commit -m "commit message"
      git pull
      git push origin master
    fi

実行結果をaddして、変更があった場合のみ、プッシュするようにしています。

実行結果を保存しておきたい時などに非常に便利です。

まとめ

GitHub Actionsで、プログラムの実行結果をリポジトリーにプッシュする方法でした。

自動化を自在に操れるようになると、プログラムでできることがどんどん広がっていくので、是非とも習得したほうが良い技術だと日々感じています。

GitHub Actionsはお手軽に自動化の恩恵を得ることができるで、今後どんどん普及していくだろうなあと感じています。