Compartilhar via


Início Rápido: criar um fluxo de trabalho do GitHub para validação de teste

Neste guia de início rápido, você aprenderá a criar um fluxo de trabalho do GitHub para testar seu código-fonte em .NET. O teste automático do código .NET no GitHub é chamado de CI (integração contínua). Nele, as solicitações de pull ou as alterações no código disparam fluxos de trabalho para exercício. Além de compilar o código-fonte, o teste garante que o código-fonte compilado funcione como o autor pretendia. Na maioria das vezes, os testes de unidade servem como loop de feedback imediato para garantir a validade das alterações no código-fonte.

Pré-requisitos

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 novo arquivo chamado build-and-test.yml, e copie e cole o seguinte conteúdo YML nele:

name: build and test

on:
  push:
  pull_request:
    branches: [ main ]
    paths:
    - '**.cs'
    - '**.csproj'

env:
  DOTNET_VERSION: '6.0.401' # The .NET SDK version to use

jobs:
  build-and-test:

    name: build-and-test-${{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: Test
      run: dotnet test --no-restore --verbosity normal

Na composição anterior do fluxo de trabalho:

  • O name: build and test define o nome, "compilar" e “testar” aparecerão nas notificações de status do fluxo de trabalho.

    name: build and test
    
  • 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 ou pull_request ocorrem no branch main quando todos os arquivos alterados terminam com as extensões de arquivo .cs ou .csproj.
  • 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 a dotnet-version da ação do GitHub actions/setup-dotnet@v3.
  • O nó jobs compila as etapas para o fluxo de trabalho a ser realizado.

    jobs:
      build-and-test:
    
        name: build-and-test-${{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: Test
          run: dotnet test --no-restore --verbosity normal
    
    • Há um único trabalho chamado build-<os>, no qual <os> é nome do sistema operacional do strategy/matrix. Os elementos name e runs-on são dinâmicos para cada valor no matrix/os. Esta ação será executada nas versões mais recentes do Ubuntu, do Windows e do macOS.
    • A ação do GitHub actions/setup-dotnet@v3 é usada para configurar o SDK do .NET com a versão especificada da variável de ambiente DOTNET_VERSION.
    • O comando dotnet restore é chamado.
    • O comando dotnet build é chamado.
    • O comando dotnet test é chamado.

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:

  1. No repositório do GitHub, selecione a opção de navegação Ações.

  2. 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.
  3. Selecione a opção no menu Criar notificação de status.

    GitHub: Create status badge

  4. Selecione o botão Copiar Markdown da notificação de status.

    GitHub: Copy status badge Markdown

  5. 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.

Exemplo de notificação de status do fluxo de trabalho de teste

Em aprovação Com falha Sem status
GitHub: test passing badge GitHub: test failing badge GitHub: test no-status badge

Confira também

Próximas etapas