サンプルの概要
この記事では、ワークフローの例を使って、GitHub Actions の主な CI 機能の一部を示します。 このワークフローがトリガーされると、GitHub Docs サイトに壊れたリンクがあるかどうかを確認するスクリプトが自動的に実行されます。
次の図は、ワークフローの手順とジョブ内でそれを実行する方法の概要を示したものです。
この例で使用されている機能
このワークフロー例は、GitHub Actions の次の機能を示しています。
機能 | 実装 |
---|---|
ワークフローをトリガーして自動的に実行する | push |
ワークフローの例
次のワークフローは、GitHub ドキュメント エンジニアリング チームによって作成されました。 github/docs
リポジトリ内でこのファイルの最新バージョンを確認するには、次を参照してください。 check-broken-links-github-github.yml
。
注: このワークフローの各行については、次のセクションの「例の説明」に説明があります。
name: 'Link Checker: All English'
# **What it does**: Renders the content of every page and check all internal links.
# **Why we have it**: To make sure all links connect correctly.
# **Who does it impact**: Docs content.
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
permissions:
contents: read
# Needed for the 'trilom/file-changes-action' action
pull-requests: read
# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
check-links:
runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 16.13.x
cache: npm
- name: Install
run: npm ci
# Creates file "$/files.json", among others
- name: Gather files changed
uses: trilom/file-changes-action@a6ca26c14274c33b15e6499323aac178af06ad4b
with:
fileOutput: 'json'
# For verification
- name: Show files changed
run: cat $HOME/files.json
- name: Link check (warnings, changed files)
run: |
./script/rendered-content-link-checker.mjs \
--language en \
--max 100 \
--check-anchors \
--check-images \
--verbose \
--list $HOME/files.json
- name: Link check (critical, all files)
run: |
./script/rendered-content-link-checker.mjs \
--language en \
--exit \
--verbose \
--check-images \
--level critical
例の説明
次の表では、GitHub Actions ワークフローを作成するときにこれらの各機能がどのように使われるかを説明します。
"コード" | 説明 |
---|---|
|
GitHub リポジトリの [アクション] タブに表示されるワークフローの名前。 |
|
|
|
このワークフローを UI から手動で実行できるようにする場合は、 |
|
|
|
pull request が作成または更新されるたびにワークフローが自動的に実行されるようにするには、 |
|
|
|
特定のイベントに対するコンカレンシー グループを作成し、 |
|
同じコンカレンシー グループ内の現在実行中のジョブまたはワークフローを取り消します。 |
|
ワークフロー ファイルで実行されるすべてのジョブをグループ化します。 |
|
|
|
ワークフローを実行するリポジトリに応じて、GitHub ホステッド ランナーまたはセルフホステッド ランナー上で実行するようにジョブを構成します。 この例では、リポジトリ名が |
|
|
|
|
|
このステップでは、 |
|
|
|
|
|
|
|
このステップでは、 |
|
このステップでも |
次の手順
- GitHub Actions の概念について確認するには、「GitHub Actions を理解する」を参照してください。
- 基本的なワークフローを作成するための詳細な手順については、「GitHub Actions のクイックスタート」を参照してください。
- GitHub Actions の基本操作に慣れている場合、ワークフローとその機能については「ワークフローについて」で確認できます。