Python

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

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

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からファイル作成することをオススメします.

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

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

name: auto create escape-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 escape gml file"
          git pull
          git push origin master
        env:
          NAME: Villager-B
          EMAIL: kkss07020@gmail.com
          REPO: github-action-training


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

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

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

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

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

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

スポンサーリンク

参考

ABOUT ME
しまさん
高専→大学編入→大学院→? / 計算社会科学,ウェブマイニングなど / グレープフルーツと本が好き / SNS(Twitter,YouTube,Twitch)やVTuberのデータ分析屋 詳しいプロフィールはこちら≫ 投げ銭はコチラ