🎉

GitHubActionsまとめ

2024/04/28に公開

概要

GitHubリポジトリに対して何らかの操作が行われた時に、予め設定しておいたワークフローが自動で実行される

トリガー

ワークフローの実行タイミングを設定

on:
 # リポジトリにプッシュされた際にワークフローが実行される
  push:

トリガー一覧

permissions

ワークフローごとに権限を設定

permissions:
  # Issueへの書き込み/読み込みを許可
  issues: write

権限一覧

Secrets、Valiables

リポジトリに環境変数を設定し、ワークフロー内で読み込む

- run:
    echo "${{ vars.TEST_ENV }}"

Environments

別環境ごとに環境変数などを設定可能

jobs:
  test:
    runs-on: ubuntu-latest
    environment:
      name: staging

    steps:
      - run:
          echo "${{ secrets.TEST }}"

再利用可能ワークフロー

別ワークフローを呼び出す

call.yml(呼び出し元)
jobs:
  call_workflow:
    uses: ./.github/workflows/called.yml
    with:
      environment_name: staging
    # inheritにすると、呼び出し元のsecretsがそのまま呼び出し先で使用できる
    secrets: inherit
called.yml(呼び出し先)
name: Called

on:
  workflow_call:
    inputs:
      environment_name: 
        description: Environment Name
        required: true
        type: string

jobs:
  called:
    runs-on: ubuntu-latest
    environment:
      name: ${{ inputs.environment_name }}

    steps:
      - run:
          echo "${{ secrets.TEST }}"

Composite Actions

複数stepを1つのワークフローにまとめて再利用できる

call.yml(呼び出し元)
    steps:
   # 呼び出す前にチェックアウトをする必要がある
      - uses: actions/checkout@v4
      - uses: ./.github/actions/test
        with:
          TEST: hoge
.github/actions/test/action.yml(呼び出し先
name: Composite Actio
description: TEST

inputs:
  TEST: 
    required: true
    description: Sample
# outputsも可能

runs:
  using: composite
  steps:
    - run: echo "${{ inputs.TEST }}"
      # シェルの種類をstepごとに記述する必要がある
      shell: bash

self-hosted-runner

独自のGitHubActions実行環境を構築できる
Setting -> Actions -> RunnersNew self-hosted runnerを選択すると、self-hosted-runner設定に必要なコマンドが表示される

jobs:
  test:
    # runs-onに"self-hosted"を選択
    runs-on: self-hosted

Discussion