こんにちは,しまさん(@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へ移動し,その結果がリポジトリに反映されます.
自動化って結構簡単にできるんですね.
もっと勉強してどんどん自動化して楽していきたいと思います.
スポンサーリンク