1
0
mirror of synced 2026-01-07 18:01:41 -05:00
Files
docs/translations/ru-RU/content/actions/examples/using-scripts-to-test-your-code-on-a-runner.md
2022-11-16 21:42:42 +00:00

14 KiB
Raw Blame History

title, shortTitle, intro, versions, type, topics, ms.openlocfilehash, ms.sourcegitcommit, ms.translationtype, ms.contentlocale, ms.lasthandoff, ms.locfileid
title shortTitle intro versions type topics ms.openlocfilehash ms.sourcegitcommit ms.translationtype ms.contentlocale ms.lasthandoff ms.locfileid
Использование скриптов для тестирования кода в средстве выполнения тестов Use scripts to test your code on a runner Использование основных функций {% data variables.product.prodname_actions %} для непрерывной интеграции (CI).
fpt ghes ghae ghec
* > 3.1 * *
how_to
Workflows
05204ce87cd5b8ef3260c997d36a9656fc08d7f1 d697e0ea10 MT ru-RU 10/20/2022 148093972

{% data reusables.actions.enterprise-github-hosted-runners %}

Обзор примера

{% data reusables.actions.example-workflow-intro-ci %} При активации этого рабочего процесса он автоматически запускает скрипт, который проверяет, есть ли на сайте Документов {% data variables.product.prodname_dotcom %} неработающие ссылки.

{% data reusables.actions.example-diagram-intro %}

Обзорная схема этапов рабочего процесса

Функции, используемые в этом примере

{% data reusables.actions.example-table-intro %}

Возможность Реализация
{% data reusables.actions.push-table-entry %} {% data reusables.actions.pull-request-table-entry %} {% data reusables.actions.workflow-dispatch-table-entry %} {% data reusables.actions.permissions-table-entry %} {% data reusables.actions.concurrency-table-entry %} Выполнение задания в различных средствах выполнения тестов в зависимости от репозитория:

Пример рабочего процесса

{% data reusables.actions.example-docs-engineering-intro %} check-broken-links-github-github.yml.

{% data reusables.actions.note-understanding-example %}

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: {% raw %}'${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'{% endraw %}
  cancel-in-progress: true

jobs:
  check-links:
    runs-on: {% raw %}${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }}{% endraw %}
    steps:
      - name: Checkout
        uses: {% data reusables.actions.action-checkout %}

      - name: Setup node
        uses: {% data reusables.actions.action-setup-node %}
        with:
          node-version: 16.13.x
          cache: npm

      - name: Install
        run: npm ci

      # Creates file "${{ env.HOME }}/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

Общие сведения о примере

{% data reusables.actions.example-explanation-table-intro %}

Код Пояснение
name: 'Link Checker: All English'

{% data reusables.actions.explanation-name-key %}

on:

Ключевое слово on позволяет определять события, которые активируются при запуске рабочего процесса. Здесь можно определить несколько событий. Дополнительные сведения см. в статье Активация рабочего процесса.

  workflow_dispatch:

Добавьте событие workflow_dispatch, если требуется возможность вручную запустить этот рабочий процесс из пользовательского интерфейса. Дополнительные сведения см. на веб-сайте workflow_dispatch.

  push:
    branches:
      - main

Добавьте событие push, чтобы рабочий процесс запускался автоматически при каждой отправке фиксации в ветвь с именем main. Дополнительные сведения см. на веб-сайте push.

  pull_request:

Добавьте событие pull_request, чтобы рабочий процесс запускался автоматически при каждом создании или обновлении запроса на вытягивание. Дополнительные сведения см. на веб-сайте pull_request.

permissions:
  contents: read
  pull-requests: read

Изменяет разрешения по умолчанию, предоставленные GITHUB_TOKEN. Зависит от потребностей рабочего процесса. Дополнительные сведения см. в статье Назначение разрешений заданиям.

{% raw %}

concurrency:
  group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'

{% endraw %}

Создает группу параллелизма для определенных событий и использует оператор || для определения резервных значений. Дополнительные сведения см. в статье Использование параллелизма.

  cancel-in-progress: true

Отменяет задание или рабочий процесс, которые сейчас выполняются в той же группе параллелизма.

jobs:

Объединяет все задания, выполняемые в файле рабочего процесса.

  check-links:

Определяет задание с идентификатором check-links, которое хранится в ключе jobs.

{% raw %}

    runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }}

{% endraw %}

Настраивает задание для запуска в средстве выполнения тестов, размещенном в {% data variables.product.prodname_dotcom %}, или в локальном средстве выполнения тестов в зависимости от репозитория, выполняющего рабочий процесс. В этом примере задание будет выполняться в локальном средстве выполнения тестов, если репозиторий называется docs-internal и находится в организации github. Если репозиторий не соответствует этому пути, задание будет выполняться в средстве выполнения тестов ubuntu-latest, размещенном в {% data variables.product.prodname_dotcom %}. Дополнительные сведения об этих вариантах см. в статье Выбор средства выполнения тестов для задания.

    steps:

Группирует все шаги, которые будут выполняться в рамках задания check-links. Каждое задание в рабочем процессе имеет собственный раздел steps.

      - name: Checkout
        uses: {% data reusables.actions.action-checkout %}

Ключевое слово uses сообщает заданию, что нужно получить действие с именем actions/checkout. Это действие, которое извлекает репозиторий и загружает его в средство выполнения, позволяя выполнять действия в коде (например, средства тестирования). Действие извлечения необходимо использовать в любой момент, когда рабочий процесс будет выполняться в коде репозитория или если вы используете действие, определенное в репозитории.

      - name: Setup node
        uses: {% data reusables.actions.action-setup-node %}
        with:
          node-version: 16.13.x
          cache: npm

На этом шаге используется действие actions/setup-node для установки указанной версии пакета программного обеспечения Node.js в средстве выполнения тестов, которое предоставляет доступ к команде npm.

      - name: Install
        run: npm ci

Ключевое слово run указывает заданию выполнить команду в средстве выполнения. В этом случае npm ci используется для установки пакетов программного обеспечения npm для проекта.

      - name: Gather files changed
        uses: trilom/file-changes-action@a6ca26c14274c33b15e6499323aac178af06ad4b
        with:
          fileOutput: 'json'

Использует действие trilom/file-changes-action для сбора всех измененных файлов. Этот пример закреплен к определенной версии действия с помощью SHA a6ca26c14274c33b15e6499323aac178af06ad4b.

      - name: Show files changed
        run: cat $HOME/files.json

Выводит список содержимого 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

На этом шаге используется команда run для выполнения скрипта, хранящегося в репозитории script/rendered-content-link-checker.mjs, которая передает все необходимые параметры.

      - name: Link check (critical, all files)
        run: |
          ./script/rendered-content-link-checker.mjs \
            --language en \
            --exit \
            --verbose \
            --check-images \
            --level critical

На этом шаге используется команда run для выполнения скрипта, хранящегося в репозитории script/rendered-content-link-checker.mjs, которая передает другой набор параметров.

Дальнейшие действия

{% data reusables.actions.learning-actions %}