Действия GitHub и .NET
В этом обзоре вы узнаете, какую роль GitHub Actions играть в разработке приложений .NET. GitHub Actions позволяет репозиториям исходного кода автоматизировать непрерывную интеграцию (CI) и непрерывную доставку (CD). Помимо этого, GitHub Actions предоставляют более продвинутые сценарии, обеспечивая хуки для автоматизации с помощью проверок кода, управления ветвями и обработки задач. С помощью исходного кода .NET в GitHub можно использовать GitHub Actions различными способами.
Действия GitHub
GitHub Actions представляют собой автономные команды, например:
-
действия извлечения . Это действие извлекает ваш репозиторий в
$GITHUB_WORKSPACE
, чтобы рабочий процесс смог получить к нему доступ. - действия/setup-dotnet. Это действие настраивает среду .NET для использования в рабочих процессах.
- dotnet/versionsweeper - Это действие выполняет очистку репозиториев .NET для целевых версий .NET, которые не поддерживаются.
Хотя эти команды изолированы от одного действия, они являются мощными с помощью композиции рабочих процессов. В композиции рабочего процесса вы определяете события , которые активируют рабочий процесс. После запуска рабочего процесса есть различные задания , которые необходимо выполнить. Каждое задание определяет любое количество шагов . Шаги могут быть делегированы в GitHub Actions или, в качестве альтернативы, вызвать скрипты командной строки.
Дополнительные сведения см. в разделе Общие сведения оGitHub Actions. Думайте о файле рабочего процесса как композиции, представляющей различные шаги для сборки, тестирования и/или публикации приложения. Доступны многие команды .NET CLI, большинство из которых можно использовать в контексте действия GitHub.
Пользовательские сценарии GitHub
Хотя в Marketplaceесть много действий GitHub, вы можете создать свой собственный. Вы можете создать GitHub Actions, выполняющие приложения .NET. Для получения дополнительной информации см. Руководство: Создание действия GitHub с помощью .NET
Файл рабочего процесса
Действия GitHub используются через файл рабочего процесса. Файл рабочего процесса должен находиться в каталоге репозитория
Примеры файлов рабочего процесса
Существует множество примеров файлов рабочих процессов .NET, предоставляемых в виде учебников и кратких руководств . Ниже приведены несколько хороших примеров имен файлов рабочего процесса:
имя файла рабочего процесса
Описание
Компилирует исходный код (или создает). Если исходный код не компилируется, это завершится ошибкой.
Выполняет модульные тесты в репозитории. Чтобы выполнить тесты, исходный код сначала должен быть скомпилирован— это действительно рабочий процесс сборки и тестирования (он заменяет рабочий процесс build-validation.yml). Сбой модульных тестов приведет к сбою рабочего процесса.
Упаковывает и публикует исходный код в место назначения.
Анализирует код для уязвимостей безопасности и ошибок кодирования. Любые обнаруженные уязвимости могут вызвать сбой.
Зашифрованные секреты
Чтобы использовать зашифрованные секреты в файлах рабочего процесса, вы ссылаетесь на секреты с помощью синтаксиса выражения рабочего процесса из объекта контекста secrets
.
${{ secrets.MY_SECRET_VALUE }} # The MY_SECRET_VALUE must exist in the repository as a secret
Значения секретов никогда не печатаются в логах. Вместо этого их имена печатаются звездочкой, представляющей их значения. Например, когда каждый шаг выполняется в задании, все значения, которые он использует, записываются в журнал действий. Секретные значения представлены следующим образом:
MY_SECRET_VALUE: ***
важный
Контекст secrets
предоставляет токен аутентификации GitHub, который связан с репозиторием, веткой и действием. Он предоставляется GitHub без вмешательства пользователя:
${{ secrets.GITHUB_TOKEN }}
Дополнительные сведения см. в разделе Использование зашифрованных секретов в рабочем процессе.
События
Рабочие процессы активируются различными типами событий. Помимо событий веб-перехватчика, которые являются наиболее распространенными, также существуют запланированные события и ручные события.
Пример события вебхука
В следующем примере показано, как указать событие вебхука для рабочего процесса.
name: code coverage
on:
push:
branches:
- main
pull_request:
branches:
- main, staging
jobs:
coverage:
runs-on: ubuntu-latest
# steps omitted for brevity
В предыдущем рабочем процессе события push
и pull_request
запустят рабочий процесс.
Пример запланированного события
В следующем примере показано, как указать триггер события для запланированного задания (cron job) в рабочем процессе.
name: scan
on:
schedule:
- cron: '0 0 1 * *'
# additional events omitted for brevity
jobs:
build:
runs-on: ubuntu-latest
# steps omitted for brevity
В предыдущем рабочем процессе событие schedule
определяет cron
для '0 0 1 * *'
, которая запускает рабочий процесс в первый день каждого месяца. Выполнение рабочих процессов в расписании отлично подходит для рабочих процессов, которые занимают много времени для выполнения или выполнения действий, требующих меньшего внимания.
Пример ручного события
В следующем примере показано, как указать триггер события вручную для рабочего процесса:
name: build
on:
workflow_dispatch:
inputs:
reason:
description: 'The reason for running the workflow'
required: true
default: 'Manual run'
# additional events omitted for brevity
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 'Print manual run reason'
if: ${{ github.event_name == 'workflow_dispatch' }}
run: |
echo 'Reason: ${{ github.event.inputs.reason }}'
# additional steps omitted for brevity
В предыдущем рабочем процессе событие workflow_dispatch
требует reason
в качестве входных данных. GitHub видит это и его пользовательский интерфейс динамически изменяет запрос пользователя на предоставление причины выполнения рабочего процесса вручную.
steps
выводит предоставленную пользователем причину.
Дополнительные сведения см. в разделе События, которые активируют рабочие процессы.
.NET CLI
Интерфейс командной строки .NET (CLI) — это кроссплатформенная цепочка инструментов для разработки, создания, запуска и публикации приложений .NET. Интерфейс командной строки .NET используется для run
в рамках отдельных steps
в файле рабочего процесса. Частые команды включают:
Для получения дополнительной информации см. обзор .NET CLI
См. также
Дополнительные сведения о GitHub Actions с помощью .NET см. в следующих ресурсах:
Руководства для быстрого старта :
- Краткое руководство: Создание проверки сборки с помощью GitHub Action
- Краткое руководство по : создание действия тестовой валидации в GitHub
- Краткое руководство: создание приложения публикации GitHub Actions
- краткое руководство по . Создание проверки безопасности GitHub Action
Руководство(-а):
- Руководство по . Создание действия GitHub с помощью .NET