nokoのブログ

こちらは暫定のメモ置き場ですので悪しからず

GitHubActionsについて調べたことメモ

はじめに

  • GitHubActionsまわりについて復習したときのメモ

メモ

ファイル例

  • .github/workflows/action.yml
name: ci # ワークフロー名

on: [push] # リポジトリへのpush時にこのワークフローを実行するよう指定

jobs:
  build-image: # ジョブの名前(ワークフローの中の一つのジョブ)
    runs-on: ubuntu-latest # Ubuntuの最新版環境内で処理を実行することを指定
    steps: # ここで実行する処理やコマンドを指定する
    - uses: actions/checkout@main # リポジトリからのチェックアウトを行う「actions/checkout」アクションを実行する
    - name: Build Docker image
      run: |
        echo "start build"
        sudo apt-get install -y wget
        wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
        cp google-chrome-stable_current_amd64.deb docker/pytorch_1_4/
        cd docker/pytorch_1_4 && docker build --tag forecast-keiba:latest . && cd -
        cd docker/pytorch_1_4 && bash run_ci.sh docker && cd -
        echo "end build"

ファイルの補足

  • on: push

    • リポジトリへのプッシュ(「push」)
    • ブランチもしくはタグの作成および削除(「create」および「delete」)
    • プルリクエストやissuesの作成(「pull_request」および「issues」)
    • issuesへのコメント投稿(「issue_comment」)
    • リポジトリのフォーク(「fork」)
    • Wikiページの作成(「gollum」)
  • 特定のブランチやタグのみを対象に指定するとき

on:
  push:
    branches:
      - master
      - foo*
  • スケジュール実行
on:
  schedule:
    - cron: '30 * * * *'
  • runs-on

    • self-hosted: ユーザーが独自に用意した実行環境
  • steps以下ではrun要素ではなく「uses」要素を指定することで、任意のActionを実行したりできる

  • パラメータを変数で指定する

    • github.sha: コミットハッシュ
  • Secrets

- name: Exports SSH private key
      run: echo "${{ secrets.SSHPrivateKey }}" > id_rsa && chmod 600 id_rsa

その他

  • Action
    • upload-artifact: 指定したファイルを「artifact」として保存する
    • cache: 生成物をキャッシュして処理を高速化する
  • プラン
    • Free: 500MB/2000分
  • マシンスペック
    • Standard_DS2_v2(仮想CPU×2、メモリ7GB、ストレージ14GB)

参考