Início Rápido: Criar um fluxo de trabalho do GitHub de validação de build
Neste início rápido, você aprenderá a criar um fluxo de trabalho do GitHub para validar a compilação do código-fonte .NET no GitHub. Compilar seu código .NET é uma das etapas de validação mais básicas que você pode executar para ajudar a garantir a qualidade das atualizações em seu código. Se o código não é compilado (ou não faz build), isso é um impedimento fácil e um sinal claro de que o código precisa ser corrigido.
Pré-requisitos
- Uma conta do GitHub.
- Um repositório de código-fonte do .NET.
Criar um arquivo do fluxo de trabalho
No repositório do GitHub, adicione um novo arquivo YAML ao diretório .github/workflows. Escolha um nome de arquivo significativo, algo que indique claramente o que o fluxo de trabalho se destina a fazer. Para obter mais informações, confira Arquivo do fluxo de trabalho.
Importante
O GitHub exige que os arquivos que compõem o fluxo de trabalho sejam colocados no diretório .github/workflows.
Os arquivos do fluxo de trabalho normalmente definem uma composição de uma ou mais ações do GitHub por meio do jobs.<job_id>/steps[*]
. Para obter mais informações, confira Sintaxe de fluxo de trabalho do GitHub Actions.
Crie um arquivo chamado build-validation.yml, copie e cole o seguinte conteúdo YML nele:
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
Na composição anterior do fluxo de trabalho:
O
name: build
define o nome, "build" aparecerá em selos de status de fluxo de trabalho.name: build
O nó
on
indica os eventos que disparam o fluxo de trabalho:on: push: pull_request: branches: [ main ] paths: - '**.cs' - '**.csproj'
- Disparado quando um
push
oupull_request
ocorrem no branchmain
quando todos os arquivos alterados terminam com as extensões de arquivo .cs ou .csproj.
- Disparado quando um
O nó
env
define variáveis de ambiente nomeadas (env var).env: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
- A variável de ambiente
DOTNET_VERSION
é atribuída ao valor'6.0.401'
. A variável de ambiente é referenciada posteriormente para especificar adotnet-version
da ação do GitHubactions/setup-dotnet@v3
.
- A variável de ambiente
O nó
jobs
compila as etapas para o fluxo de trabalho a ser realizado.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
Há um único trabalho chamado
build-<os>
, no qual<os>
é nome do sistema operacional dostrategy/matrix
. Os elementosname
eruns-on
são dinâmicos para cada valor nomatrix/os
. Esta ação será executada nas versões mais recentes do Ubuntu, do Windows e do macOS.A GitHub Action
actions/setup-dotnet@v3
é necessária para configurar o SDK do .NET com a versão especificada da variável de ambienteDOTNET_VERSION
.(Opcionalmente) Etapas adicionais podem ser necessárias, dependendo da carga de trabalho do .NET. Elas são omitidas deste exemplo, mas talvez você precise de ferramentas adicionais instaladas para criar seus aplicativos.
- Por exemplo, ao criar um aplicativo ASP.NET Core Blazor WebAssembly com compilação AoT (antecipada), você instala a carga de trabalho correspondente antes de executar operações de restauração/build/publicação.
- name: Install WASM Tools Workload run: dotnet workload install wasm-tools
Para mais informações sobre cargas de trabalho do .NET, confira
dotnet workload install
.O comando
dotnet restore
é chamado.O comando
dotnet build
é chamado.
Nesse caso, pense em um arquivo de fluxo de trabalho como uma composição que representa as várias etapas para compilar um aplicativo. Muitos comandos da CLI do .NET estão disponíveis, e a maioria deles pode ser usada no contexto de uma Ação do GitHub.
Criar uma notificação de status de fluxo de trabalho
É comum que os repositórios do GitHub tenham um arquivo README.md na raiz do diretório do repositório. Da mesma forma, é bom relatar o status mais recente para vários fluxos de trabalho. Todos os fluxos de trabalho podem gerar uma notificação de status, que são visualmente atraentes no arquivo README.md. Para adicionar a notificação de status ao fluxo de trabalho:
No repositório do GitHub, selecione a opção de navegação Ações.
Todos os fluxos de trabalho do repositório são exibidos no lado esquerdo. Selecione o fluxo de trabalho desejado e o botão de reticências (...).
- O botão de reticências (...) expande as opções de menu para o fluxo de trabalho selecionado.
Selecione a opção no menu Criar notificação de status.
Selecione o botão Copiar Markdown da notificação de status.
Cole o Markdown no arquivo README.md, salve o arquivo, faça commit das alterações e envie por push.
Para obter mais informações, confira Como adicionar uma notificação de status do fluxo de trabalho.
Notificação de status de fluxo de trabalho de build de exemplo
Em aprovação | Com falha | Sem status |
---|---|---|