青ポスの部屋

旅と技術とポエムのブログ

GitHub ActionでCI/CDする

概要

GitHub Actionで、特定リポジトリにコードがプッシュされたときにコンパイルするように設定する。

GitHub Actionとは

「特定ブランチにpushされたとき、これこれの処理を行う」といったイベント駆動の処理を実行できる機能。

使い方

今回はひとまずActionを回すということで、「masterにpull-requestが来たら、gfortranでコンパイルが通るかを確認する」というリポジトリを作る。

github.com

新たなアクションの設定

リポジトリ.github/workflowsの下にmyactions.ymlのようなymlファイルを記述する。

内容

onにイベント、つまり「xxが起こったら」を記述する。

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs以下に具体的な処理(job)を記述する。書かれた処理はすべて実行される。jobはstepに分けて書くことができる。

- uses: actions/checkout@v2という記述があるが、これは外部のActionを取り込む。「actions/checkout」とはサンプルっぽい文字列だが、下記のリポジトリにコードがある。

github.com

今回は「src/main.f90をgfortranでコンパイルする」ので、ステップに書き起こす。

- name: Run a one-line script
  run: gfortran -o dist/test.out src/main.f90

CIの実行

上記のyamlファイルをコミットして、masterにpull requestをすると、自動的にコンパイル処理が走り、pull request画面でその合否が表示される。

f:id:bluepost69:20200911215410p:plain

stepごとの状況やログも詳細に見ることができる。