Github Actions

Github actions
このサイトのビルドにも使用しているCI/CD
今後OSSで公開などしたライブラリのドキュメントを表示などしたいので、先に用意

感想

先にやってみた感想としては、
ちょっとWindowsでやるのは、ローカルでテストしづらく
構成が完成するまで、プッシュなどを重ねて確認する印象があった。
publicリポジトリで完全にローカル構築できる方法があれば、印象が変わるかも..
(private向けだったり、windowsではパスのエラーが起きたりといまいち上手くいかない状態だった。)

書き方

総じてkubernetesなどのもそうだが、構成をyamlで定義している物は
公式ドキュメントの構文を見ながら一つずつ進めないと全然訳わかめなので公式をお勧めしたい。
参考に、このサイトのビルドに使用している物を下記に記載。

Tip

ポイントはCI/CDは高速で回せないといけないので、cacheなども入れて高速化を意識している事。
Linuxのおかげもあるが、大体このJobでcacheが効いて40秒位

name: MkDocs Deploy

on:
  push:
    branches: master
    paths:
      - "docs/**/*.md"
      - "mkdocs.yml"
jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      # Gitのユーザー設定
      - name: Git config
        run: |
          git config --global user.name "github-actions"
          git config --global user.email actions@github.com

      # Git認証
      - name: Checkout
        uses: actions/checkout@v2

      # Pythonインストール
      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: "3.8"

      # pipenvインストール
      - name: Install pipenv
        run: |
          pip install pipenv

      # pipenvのvirtualenvをcache
      - name: Cache pipenv virtualenv
        id: cache-pipenv
        uses: actions/cache@v1
        with:
          path: ~/.local/share/virtualenvs
          key: ${{ runner.os }}-pipenv-${{ hashFiles('**/Pipfile.lock') }}

      # cacheがなければ、インストール
      - name: Install dependencies
        if: steps.cache-pipenv.outputs.cache-hit != 'true'
        run: pipenv install

      # MkDocsのデプロイ
      - name: MkDocs deploy
        run: |
          pipenv run mkdocs gh-deploy

act

act
Github Actionをローカルで回す為のテストランナー
dockerで環境立ててやるので、良さそうではあったのですが、ホストがWindowsだとパスのエラーが起きて上手くいかず
WSL2だと上手くいったという話があるので、今度試してみるかも。