0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHubActionsまとめ

Last updated at Posted at 2024-06-14

概要

・GitHubリポジトリに対して何らかの操作が行われた時に、予め設定しておいたワークフローが自動で実行される
・ワークフローはymlで記述、.github/workflows配下に置く

トリガー

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

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

トリガー一覧

permissions

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

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

権限一覧

Secrets、Valiables

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

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

Environments

各環境ごとに環境変数などを個別に設定可能
environments.png
environments_secrets.png

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設定に必要なコマンドが表示される
self-hosted-runner.png
self-hosted-runner2.png

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

artifacts

ジョブの実行結果をzipファイルとしてGitHub上に保存し、他ジョブや他ワークフローに共有できる

- name: Upload artifacts
  uses: actions/upload-artifact@v4
  with:
    name: job-result
    path: result/

ダウンロードにはactions/download-artifactを使用

- name: Download artifact
  uses: actions/download-artifact@v4
  with:
    name: job-result

Docker

self-hosted-runnerの場合、Dockerコンテナ内でワークフローを実行させることができる。

jobs:
  test:
    container:
      image: ubuntu:latest
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?