Python

GitHub Actions使ってpython自動実行して結果をcommit&pushしてみる

こんにちは,しまさん(@nitkcdadon)です.

GitHub ActionsというGitHubが提供しているCI/CDサービスがあります.

無料でもある程度の時間使用することができるので,個人的に特定の処理を自動化して遊ぶことはできそうです.

今回は普段使用しているPythonをターゲットにして,特定ファイルがpushされたらリポジトリ内にあるpythonファイルを実行し,結果をcommit&pushしてみたいと思います.

リポジトリ

スポンサーリンク

実行する内容

もともとはNumericCharacter2Stringという自分のリポジトリを自動化したくて作成しています.

数値文字参照になっている任意のファイル名をコマンドライン引数として与えることで filename-unescape.fileextensionの文字列に変更されたファイルを生成させるものです.

これでCytoScapeなどで可視化したときに日本語がちゃんと表示されます.

これはpython実行させればいいだけなので楽ですけど,Windowsだと動かなかったりするのでできればfileをpushするだけで自動でpython実行され,ファイルをよしなにディレクトリにpushしてくれることを望むわけです.

なので今回はこれをGitHub Actionsで実現しようと思います.

スポンサーリンク

リポジトリにパスワードを用意する

まずは自分のリポジトリのsettingsからsecretsを選び,作成していきます.

名前は適当でいいですが,GITHUBから始まる名前はだめだったりいくつか制約があるので気をつけてください.

Actionsの作成

GitHub Actionsを実行させるための設定ファイルをyaml形式で書きます.

.github/workflows/以下にymlファイルを用意することでいけますが,GitHub上でActionsからファイル作成することをオススメします.

色々推薦なり,間違えを指摘してくれるので最初のうちはいいかもです.

結果以下の設定ファイルを作成しました.これはリポジトリにも書いてあります.

env内の値は各自で変更してください.

このActionsではdirs以下でgmlファイルをpushすることで実行されます.

Ubuntu-20.04上でPythonが実行できる環境を作成し,python実行,変更をcommit,pushしています.

name: auto create unescape-gml file

on:
  push:
    paths:
      - 'dirs/**.gml'

jobs:
  build:
    runs-on: Ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
      - name: Setup python and Run
        uses: actions/setup-python@v2
        with:
          python-version: '3.6.9'
          architecture: x64
      - run: python numetric_char_str.py
      - name: Run a multi-line script
        run: |
          git config user.name ${NAME}
          git config user.email ${EMAIL}
          git remote set-url origin https://${NAME}:${{ secrets.USER_GITHUB }}@github.com/${NAME}/${REPO}
          git add .
          git commit -m "create unescape gml file"
          git pull
          git push origin master
        env:
          NAME: 'NAME'
          EMAIL: 'EMAIL'
          REPO: 'REPO'

これによってdirにpushしたgmlファイルはoriginalへ,実行した結果のファイルはescapeへ移動し,その結果がリポジトリに反映されます.

自動化って結構簡単にできるんですね.

もっと勉強してどんどん自動化して楽していきたいと思います.

スポンサーリンク

参考

ABOUT ME
しまさん
てくてくぷれいす運営者のしまさんです. 高専→大学編入してから行動的な大学生  自身の変化を求めてブログを始める グレープフルーツと本が大好物 IT系のことやブログ,高専や編入,大学生活に関することを発信中!!詳しいプロフィールはこちら≫ 投げ銭はコチラへ YouTubeはコチラへ 質問はコチラ