競技プログラミングのコンテストを作る際に、作問補助ツールであるRimeを使います。これまではPush時にTravis CIでテストが回るようにしていたのですが、GitHub Actionsに移行してみました。設定を共有します。
Travis CIの例
かつてはTravis CIを使っていました。.travis.yml
の設定を下記に示します。
language: python cache: bundler python: - "3.7" addons: apt: sources: - pypy packages: - mono-devel - pypy3 install: - pip install -r requirements.txt script: - rime test
GitHub Actionsの例
.github/workflows/rime.yml
に書き換えると下記のようになります。
name: Rime on: [push] jobs: rime_test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Set up Python 3.7 uses: actions/setup-python@v1 with: python-version: 3.7 - name: Cache requirements uses: actions/cache@v1 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Test with Rime run: | rime test
Travis CIと比べると、各属性が明確になったように感じます。設定内容は下記で説明されています。
GitHub Actions のコンテキストおよび式の構文 - GitHub ヘルプ
比較
- GitHub Actionsの良い点
- Travis CIと比べてGitHub Actionsはもともとインストールされているものが多いので、PyPyやC#をインストールする必要がありません。
- GitHub Actionsは各リポジトリのページで設定ができるため、導入時の設定が簡単です。
- Travis CIの良い点
- Travis CIの方が処理速度が高速です。
- 何による差なのかは確認していませんが、Travis CIで6m程度かかっていた処理が、GitHub Actionsでは6.5m程度かかるようになっています。
- Travis CIの方が処理速度が高速です。
関連記事
Rime関連で他にも記事を書いているので、必要に応じて見てみてください。