tubone

tubone

Boyaki makes a new world


 Recent posts  6 / 75

AprMayJunJulNEW GAME!から見る新入社員の心得その2Jetson Nanoを触る報告 ~立派なタワーPCみたいだろ? 小型なんだぜ?~tiny_yolov2_onnx_camを使って物体検知するJetson nano + SainSmart IMX219でアニメ風自撮り動画を作るStyleGANとStyleGAN2を使って美少女キャラを無限増殖させるRaspberry PIを使って植物の水やり監視システムを作る2020年のデスクトップはこれだ!かっこいいあつもりを始めてしまいましたクロスルート証明書について考えてみるReact Iframeを使ってPortfolioサイトにSoundCloudのメディアプレーヤーをつけるGitHub ProfileにREADMEをつけよう!Arctic Code Vault ContributorになったらしいMonWedFri
Arctic Code Vault ContributorになったらしいGitHub ProfileにREADMEをつけよう!React Iframeを使ってPortfolioサイトにSoundCloudのメディアプレーヤーをつけるクロスルート証明書について考えてみるあつもりを始めてしまいました2020年のデスクトップはこれだ!かっこいい


 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サーバ連携も不要で楽々です。

˚