tubone

tubone

Boyaki makes a new world


 Recent posts  6 / 78

MayJunJulAugSepStyleGANとStyleGAN2を使って美少女キャラを無限増殖させるRaspberry PIを使って植物の水やり監視システムを作る2020年のデスクトップはこれだ!かっこいいあつもりを始めてしまいましたクロスルート証明書について考えてみるReact Iframeを使ってPortfolioサイトにSoundCloudのメディアプレーヤーをつけるGitHub ProfileにREADMEをつけよう!Arctic Code Vault Contributorになったらしい4連休を使ってGASとLINE BOTとFirebaseを使ってラーメン食べたいBOTを作ってみたGitHub JavaScript Action で GitHub ReleaseのUpdate Releaseを作ってみた。Nim用のTwitterSDK作るついでに仕事中TwitterができるCLIを作ったMonWedFri
Nim用のTwitterSDK作るついでに仕事中TwitterができるCLIを作ったGitHub JavaScript Action で GitHub ReleaseのUpdate Releaseを作ってみた。4連休を使ってGASとLINE BOTとFirebaseを使ってラーメン食べたいBOTを作ってみたArctic Code Vault ContributorになったらしいGitHub ProfileにREADMEをつけよう!React Iframeを使ってPortfolioサイトにSoundCloudのメディアプレーヤーをつける


 WordCloud

wordCloud

 SearchBox

Search your interesting by Algolia in this blog.


この記事は57文字約4分で読めます

最近Github Actionを触って便利さに気がついてしまったのでご紹介します。

Table of Contents

Github Actionとは?

Github Actionとは、 built by you, run by us です。(公式より)

詰まるところGithub製のCIです。

結構簡単に使えたのでご紹介します。

Github Actionのプレビューに応募する

Github Action自体はまだプレビュー版ですので、こちらのサイトから 利用申請をする必要があります。

私は申し込みから一週間くらいで使えるようになりました。

無事利用できるようになりますと、レポジトリにActionボタンが 出てきます。

Img

Workflowを設定する

Github ActionはほかのCIと同じくYAMLファイルで定義します。

今回はPythonのPytestでテストを回します。

下記のようにPython環境の設定、のパッケージBuild、Pytestまでを設定します。

name: Python package

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest
    strategy:
      max-parallel: 4
      matrix:
        python-version: [3.6, 3.7]

    steps:
    - uses: actions/checkout@v1
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Setup ebook-homebrew
      run: |
        python setup.py install
    - name: Test with pytest
      run: |
        pip install pytest
        pip install -r requirements-test.txt
        pytest --it
    - name: Lint check
      run: |
        black ebook_homebrew setup.py --check

Trigger設定

今回はpush時に動くようにしますので

name: Python package

on: [push]
jobs:
  build:

のように設定します。

Triggerについてはこちらをご確認ください。

Matrixでテスト

Matrixでテストする場合は下記のようにPythonのバージョンを複数設定します。

jobs:
  build:

    runs-on: ubuntu-latest
    strategy:
      max-parallel: 4
      matrix:
        python-version: [3.6, 3.7]

    steps:
    - uses: actions/checkout@v1    - name: Set up Python ${{ matrix.python-version }}

Stepの設定

StepはほかのCIと同じような感じで設定します。

    steps:
    - uses: actions/checkout@v1
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Setup ebook-homebrew
      run: |
        python setup.py install
    - name: Test with pytest
      run: |
        pip install pytest
        pip install -r requirements-test.txt
        pytest --it
    - name: Lint check
      run: |
        black ebook_homebrew setup.py --check

CI起動時の動き

無事PushでCIが動くと各push、PRごとにActionに結果がでます。

Img

さらに、実行ログも確認できます。

もう普通のCIですね。

Img

結論

Github Actionを使えば、めんどっちいCIサーバ連携も不要で楽々です。

˚