Бөлісу құралы:


Краткое руководство. Создание рабочего процесса проверки сборки 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-versionactions/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 . Чтобы добавить значок состояния рабочего процесса, выполните следующие действия.

  1. В репозитории GitHub выберите параметр навигации Actions .

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

    • Кнопка с многоточием (...) расширяет параметры меню для выбранного рабочего процесса.
  3. Выберите пункт меню "Создать индикатор состояния".

    GitHub: Create status badge

  4. Нажмите кнопку "Копировать состояние" Markdown .

    GitHub: Copy status badge Markdown

  5. Вставьте Markdown в файл README.md , сохраните файл, зафиксируйте и отправьте изменения.

Дополнительные сведения см. в разделе "Добавление индикатора состояния рабочего процесса".

Пример индикатора состояния рабочего процесса сборки

Прохождения Неудача Нет состояния
GitHub: build passing badge GitHub: build failing badge GitHub: build no-status badge

См. также

Следующие шаги