Partilhar via


Guia de início rápido: criar um fluxo de trabalho do GitHub de validação de teste

Neste início rápido, você aprenderá como criar um fluxo de trabalho do GitHub para testar seu código-fonte .NET. Testar automaticamente seu código .NET no GitHub é conhecido como integração contínua (CI), onde solicitações pull ou alterações no fluxo de trabalho de origem disparam fluxos de trabalho para exercício. Juntamente com a construção do 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 feedback imediato para ajudar a garantir a validade das alterações no código-fonte.

Pré-requisitos

  • Uma conta GitHub.
  • Um repositório de código-fonte .NET.

Criar um arquivo de fluxo de trabalho

No repositório 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 pretende fazer. Para obter mais informações, consulte Arquivo de fluxo de trabalho.

Importante

O GitHub requer que os arquivos de composição do fluxo de trabalho sejam colocados no diretório .github/workflows .

Os arquivos de 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, consulte Sintaxe do fluxo de trabalho para ações do GitHub.

Crie um novo arquivo chamado build-and-test.yml, 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 do fluxo de trabalho anterior:

  • O name: build and test define o nome, "construir e testar" aparecerá nos selos de status do fluxo de trabalho.

    name: build and test
    
  • O on nó significa os eventos que acionam o fluxo de trabalho:

    on:
      push:
      pull_request:
        branches: [ main ]
        paths:
        - '**.cs'
        - '**.csproj'
    
    • Acionado quando um push ou ocorre na main ramificação onde quaisquer arquivos foram alterados terminando com as extensões de arquivo .cs ou .csprojpull_request.
  • O env nó define variáveis de ambiente nomeadas (env var).

    env:
      DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
    
    • A variável DOTNET_VERSION de ambiente recebe o valor '6.0.401'. A variável de ambiente é posteriormente referenciada para especificar o dotnet-versionactions/setup-dotnet@v3 da Ação do GitHub.
  • O jobs nó cria as etapas a serem executadas pelo fluxo de trabalho.

    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, nomeado build-<os> onde o é o <os> nome do sistema operacional do strategy/matrix. Os name elementos e runs-on são dinâmicos para cada valor no matrix/os. Isso será executado nas versões mais recentes do Ubuntu, Windows e macOS.
    • A actions/setup-dotnet@v3 ação do GitHub é usada para configurar o SDK do .NET com a versão especificada da DOTNET_VERSION variável de ambiente.
    • O dotnet restore comando é chamado.
    • O dotnet build comando é chamado.
    • O dotnet test comando é chamado.

Criar um selo de status do fluxo de trabalho

É uma nomenclatura comum para repositórios do GitHub ter 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 um selo de status, que são visualmente atraentes dentro do arquivo README.md . Para adicionar o selo de status do fluxo de trabalho:

  1. No repositório 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 de menu Criar selo de status.

    GitHub: Create status badge

  4. Selecione o botão Copiar selo de status Markdown .

    GitHub: Copy status badge Markdown

  5. Cole o Markdown no arquivo README.md , salve o arquivo, confirme e envie as alterações.

Para saber mais, consulte Adicionando um selo de status do fluxo de trabalho.

Exemplo de selo de status do fluxo de trabalho de teste

Passagem Com falhas Sem estatuto
GitHub: test passing badge GitHub: test failing badge GitHub: test no-status badge

Consulte também

Próximos passos