Краткое руководство. Создание рабочего процесса проверки сборки GitHub
В этом кратком руководстве вы узнаете, как создать рабочий процесс GitHub для проверки компиляции исходного кода .NET в GitHub. Компиляция кода .NET является одним из самых простых шагов проверки, которые можно предпринять, чтобы обеспечить качество обновлений кода. Если код не компилируется (или не выполняет сборку), это простой сдерживающий фактор и должен быть четким признаком того, что код должен быть исправлен.
Необходимые компоненты
- Учетная запись GitHub.
- Репозиторий исходного кода .NET.
Создание файла рабочего процесса
В репозитории GitHub добавьте новый ФАЙЛ YAML в каталог github/workflows . Выберите понятное имя файла, которое четко указывает, что рабочий процесс предназначен для выполнения. Дополнительные сведения см . в файле рабочего процесса.
Внимание
GitHub требует, чтобы файлы композиции рабочих процессов размещались в каталоге github/workflows .
Файлы рабочих процессов обычно определяют композицию одного или нескольких GitHub Action с помощью .jobs.<job_id>/steps[*]
Дополнительные сведения см. в синтаксисе рабочего процесса для GitHub Actions.
Создайте файл с именем build-validation.yml, скопируйте и вставьте в него следующее содержимое YML:
name: build
on:
push:
pull_request:
branches: [ main ]
paths:
- '**.cs'
- '**.csproj'
env:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
build:
name: build-${{matrix.os}}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v3
- name: Setup .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
В приведенной выше композиции рабочего процесса:
Определяет
name: build
имя, "сборка" будет отображаться в индикаторах состояния рабочего процесса.name: build
Узел
on
обозначает события, которые активируют рабочий процесс:on: push: pull_request: branches: [ main ] paths: - '**.cs' - '**.csproj'
- Активируется при
push
возникновении илиpull_request
возникновенииmain
в ветви, в которой все файлы изменились, заканчивая расширениями .cs или CSPROJ-файла .
- Активируется при
Узел
env
определяет именованные переменные среды (env var).env: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
- Переменная
DOTNET_VERSION
среды присваивается значению'6.0.401'
. Позже переменная среды ссылается на указаниеdotnet-version
actions/setup-dotnet@v3
действия GitHub.
- Переменная
Узел
jobs
создает шаги для выполнения рабочего процесса.jobs: build: name: build-${{matrix.os}} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] steps: - uses: actions/checkout@v3 - name: Setup .NET Core uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Install dependencies run: dotnet restore - name: Build run: dotnet build --configuration Release --no-restore
Существует одно задание с именем
build-<os>
<os>
операционной системы из .strategy/matrix
Элементыname
являются динамическими для каждого значения в элементеmatrix/os
.runs-on
Это будет работать в последних версиях Ubuntu, Windows и macOS.Действие
actions/setup-dotnet@v3
GitHub требуется для настройки пакета SDK для .NET с указанной версией из переменнойDOTNET_VERSION
среды.(Необязательно) В зависимости от рабочей нагрузки .NET могут потребоваться дополнительные действия. Они опущены в этом примере, но для создания приложений могут потребоваться дополнительные средства.
- Например, при создании ASP.NET приложения Core Blazor WebAssembly с помощью компиляции AoT необходимо установить соответствующую рабочую нагрузку перед выполнением операций восстановления и сборки и публикации.
- name: Install WASM Tools Workload run: dotnet workload install wasm-tools
Дополнительные сведения о рабочих нагрузках .NET см. в статье
dotnet workload install
.Вызывается
dotnet restore
команда.Вызывается
dotnet build
команда.
В этом случае думайте о файле рабочего процесса как композиции, представляющей различные шаги по созданию приложения. Доступны многие команды ИНТЕРФЕЙСА командной строки .NET, большинство из которых можно использовать в контексте действия GitHub.
Создание индикатора состояния рабочего процесса
В репозиториях GitHub обычно используется файл README.md в корне каталога репозитория. Аналогичным образом, приятно сообщить о последнем состоянии для различных рабочих процессов. Все рабочие процессы могут создать значок состояния, который визуально привлекательно в файле README.md . Чтобы добавить значок состояния рабочего процесса, выполните следующие действия.
В репозитории GitHub выберите параметр навигации Actions .
Все рабочие процессы репозитория отображаются слева, выберите нужный рабочий процесс и кнопку с многоточием (...).
- Кнопка с многоточием (...) расширяет параметры меню для выбранного рабочего процесса.
Выберите пункт меню "Создать индикатор состояния".
Нажмите кнопку "Копировать состояние" Markdown .
Вставьте Markdown в файл README.md , сохраните файл, зафиксируйте и отправьте изменения.
Дополнительные сведения см. в разделе "Добавление индикатора состояния рабочего процесса".
Пример индикатора состояния рабочего процесса сборки
Прохождения | Неудача | Нет состояния |
---|---|---|