Partilhar via


Ações do GitHub e .NET

Nesta visão geral, você aprenderá qual o papel das Ações do GitHub no desenvolvimento de aplicativos .NET. As ações do GitHub permitem que seus repositórios de código-fonte automatizem a integração contínua (CI) e a entrega contínua (CD). Além disso, as Ações do GitHub expõem cenários mais avançados, fornecendo ganchos para automação com revisões de código, gerenciamento de ramificações e triagem de problemas. Com seu código-fonte .NET no GitHub, você pode aproveitar as ações do GitHub de várias maneiras.

GitHub Actions

As Ações do GitHub representam comandos autônomos, como:

  • actions/checkout - Esta ação faz check-out do repositório em $GITHUB_WORKSPACE, para que seu fluxo de trabalho possa acessá-lo.
  • actions/setup-dotnet - Esta ação configura um ambiente .NET CLI para uso em ações.
  • dotnet/versionsweeper - Esta ação varre repositórios .NET para versões de destino fora de suporte do .NET.

Embora esses comandos sejam isolados em uma única ação, eles são poderosos por meio da composição do fluxo de trabalho. Na composição do fluxo de trabalho, você define os eventos que acionam o fluxo de trabalho. Quando um fluxo de trabalho é executado, há vários trabalhos que ele é instruído a executar. Cada trabalho define qualquer número de etapas. As etapas delegam para Ações do GitHub ou, alternativamente, chamam scripts de linha de comando.

Para obter mais informações, consulte Introdução às ações do GitHub. Pense em um arquivo de fluxo de trabalho como uma composição que representa as várias etapas para criar, testar e/ou publicar 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.

Ações personalizadas do GitHub

Embora haja muitas Ações do GitHub disponíveis no Marketplace, você pode querer criar as suas. Você pode criar ações do GitHub que executam aplicativos .NET. Para obter mais informações, consulte Tutorial: Criar uma ação do GitHub com .NET

Ficheiro de fluxo de trabalho

As ações do GitHub são utilizadas por meio de um arquivo de fluxo de trabalho. O arquivo de fluxo de trabalho deve estar localizado no diretório .github/workflows do repositório e espera-se que seja YAML ( *.yml ou *.yaml). Os arquivos de fluxo de trabalho definem a composição do fluxo de trabalho. Um fluxo de trabalho é um processo automatizado configurável composto por um ou mais trabalhos. Para obter mais informações, consulte Sintaxe do fluxo de trabalho para ações do GitHub.

Exemplo de arquivos de fluxo de trabalho

Há muitos exemplos de arquivos de fluxo de trabalho .NET fornecidos como tutoriais e inícios rápidos. Aqui estão vários bons exemplos de nomes de arquivos de fluxo de trabalho:

Nome do arquivo de fluxo de trabalho

Descrição

Compila (ou constrói) o código-fonte. Se o código-fonte não compilar, isso falhará.

Realiza os testes de unidade dentro do repositório. Para executar testes, o código-fonte deve primeiro ser compilado — isso é realmente um fluxo de trabalho de compilação e teste (substituiria o fluxo de trabalho build-validation.yml ). A falha nos testes de unidade causará falha no fluxo de trabalho.

Empacota e publica o código-fonte em um destino.

Analisa seu código em busca de vulnerabilidades de segurança e erros de codificação. Qualquer vulnerabilidade descoberta pode causar falha.

Segredos criptografados

Para usar segredos criptografados em seus arquivos de fluxo de trabalho, faça referência aos segredos usando a sintaxe da expressão de fluxo de trabalho do secrets objeto de contexto.

${{ secrets.MY_SECRET_VALUE }} # The MY_SECRET_VALUE must exist in the repository as a secret

Os valores secretos nunca são impressos nos logs. Em vez disso, os seus nomes são impressos com um asterisco que representa os seus valores. Por exemplo, como cada etapa é executada dentro de um trabalho, todos os valores que ele usa são enviados para o log de ações. Os valores secretos são renderizados de forma semelhante à seguinte:

MY_SECRET_VALUE: ***

Importante

O secrets contexto fornece o token de autenticação do GitHub com escopo para o repositório, ramificação e ação. É fornecido pelo GitHub sem qualquer intervenção do usuário:

${{ secrets.GITHUB_TOKEN }}

Para obter mais informações, consulte Usando segredos criptografados em um fluxo de trabalho.

Evento

Os fluxos de trabalho são acionados por muitos tipos diferentes de eventos. Além dos eventos Webhook, que são os mais comuns, há também eventos agendados e eventos manuais.

Exemplo de evento webhook

O exemplo a seguir mostra como especificar um gatilho de evento webhook para um fluxo de trabalho:

name: code coverage

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main, staging

jobs:
  coverage:

    runs-on: ubuntu-latest

    # steps omitted for brevity

No fluxo de trabalho anterior, os push eventos e pull_request acionarão a execução do fluxo de trabalho.

Exemplo de evento agendado

O exemplo a seguir mostra como especificar um gatilho de evento agendado (cron job) para um fluxo de trabalho:

name: scan
on:
  schedule:
  - cron: '0 0 1 * *'
  # additional events omitted for brevity

jobs:
  build:
    runs-on: ubuntu-latest

    # steps omitted for brevity

No fluxo de trabalho anterior, o schedule evento especifica o cron que acionará o fluxo de '0 0 1 * *' trabalho para ser executado no primeiro dia de cada mês. Executar fluxos de trabalho em um cronograma é ótimo para fluxos de trabalho que levam muito tempo para serem executados ou executar ações que exigem atenção menos frequente.

Exemplo de evento manual

O exemplo a seguir mostra como especificar um gatilho de evento manual para um fluxo de trabalho:

name: build
on:
  workflow_dispatch:
    inputs:
      reason:
        description: 'The reason for running the workflow'
        required: true
        default: 'Manual run'
  # additional events omitted for brevity

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: 'Print manual run reason'
        if: ${{ github.event_name == 'workflow_dispatch' }}
        run: |
          echo 'Reason: ${{ github.event.inputs.reason }}'

    # additional steps omitted for brevity

No fluxo de trabalho anterior, o workflow_dispatch evento requer uma reason entrada as. O GitHub vê isso e sua interface do usuário muda dinamicamente para solicitar que o usuário forneça o motivo para executar manualmente o fluxo de trabalho. O steps irá imprimir o motivo fornecido pelo usuário.

Para obter mais informações, consulte Eventos que acionam fluxos de trabalho.

CLI de .NET

A interface de linha de comando (CLI) do .NET é uma cadeia de ferramentas de plataforma cruzada para desenvolver, criar, executar e publicar aplicativos .NET. A CLI do .NET é usada como run parte do indivíduo steps dentro de um arquivo de fluxo de trabalho. Os comandos comuns incluem:

Para obter mais informações, consulte Visão geral da CLI do .NET

Consulte também

Para obter uma visão mais aprofundada das Ações do GitHub com .NET, considere os seguintes recursos: