Partilhar via


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

Neste guia de início rápido, você aprenderá como criar um fluxo de trabalho do GitHub para validar a compilação do código-fonte do .NET no GitHub. Compilar seu código .NET é uma das etapas de validação mais básicas que você pode tomar para ajudar a garantir a qualidade das atualizações do seu código. Se o código não compilar (ou compilar), é um dissuasor fácil e deve ser um sinal claro de que o código precisa ser corrigido.

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-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 do fluxo de trabalho anterior:

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

    name: build
    
  • 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:
    
        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, 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 é necessária para configurar o SDK do .NET com a versão especificada da DOTNET_VERSION variável de ambiente.

    • (Opcionalmente) Etapas adicionais podem ser necessárias, dependendo da sua carga de trabalho do .NET. Eles são omitidos deste exemplo, mas você pode precisar de ferramentas adicionais instaladas para criar seus aplicativos.

      • Por exemplo, ao criar um aplicativo WebAssembly ASP.NET Core Blazor com compilação Ahead-of-Time (AoT), você instalaria a carga de trabalho correspondente antes de executar operações de restauração/compilação/publicação.
      - name: Install WASM Tools Workload
        run: dotnet workload install wasm-tools
      

      Para obter mais informações sobre cargas de trabalho .NET, consulte dotnet workload install.

    • O dotnet restore comando é chamado.

    • O dotnet build comando é chamado.

Nesse caso, pense em um arquivo de fluxo de trabalho como uma composição que representa as várias etapas para criar um aplicativo. Muitos comandos da CLI do .NET estão disponíveis, a maioria dos quais pode ser usada no contexto de uma ação do GitHub.

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 compilação

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

Consulte também

Próximos passos