Примечание. В GitHub Enterprise Server в настоящее время не поддерживаются средства выполнения тестов, размещенные в GitHub. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.
Обзор примера
В этой статье на примере рабочего процесса демонстрируется применение некоторых функций GitHub Actions для непрерывной интеграции. При активации этого рабочего процесса он автоматически запускает скрипт, который проверяет, есть ли на сайте Документов GitHub неработающие ссылки.
На следующей схеме показано общее представление этапов рабочего процесса и их выполнение в задании:
Функции, используемые в этом примере
Пример рабочего процесса демонстрирует следующие возможности 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. |
|
Ключевое слово |
|
Добавьте событие |
|
Добавьте событие |
|
Добавьте событие |
|
Изменяет разрешения по умолчанию, предоставленные |
|
Создает группу параллелизма для определенных событий и использует оператор |
|
Отменяет задание или рабочий процесс, которые сейчас выполняются в той же группе параллелизма. |
|
Объединяет все задания, выполняемые в файле рабочего процесса. |
|
Определяет задание с идентификатором |
|
Настраивает задание для запуска в средстве выполнения тестов, размещенном в GitHub, или в локальном средстве выполнения тестов в зависимости от репозитория, выполняющего рабочий процесс. В этом примере задание будет выполняться в локальном средстве выполнения тестов, если репозиторий называется |
|
Группируют все шаги, которые будут выполняться в рамках задания |
|
Ключевое слово |
|
На этом шаге используется действие |
|
Ключевое слово |
|
Использует действие |
|
Выводит список содержимого |
|
На этом шаге используется команда |
|
На этом шаге используется команда |
Дальнейшие действия
- Дополнительные сведения о GitHub Actions см. в разделе Общие сведения о GitHub Actions.
- Дополнительные пошаговые инструкции по созданию базового рабочего процесса см. в разделе Краткое руководство по GitHub Actions.
- Если вы знакомы с основами GitHub Actions, вы можете узнать о рабочих процессах и их функциях в разделе Сведения о рабочих процессах.