Partilhar via


Ações do GitHub e .NET

Nesta visão geral, irá aprender qual o papel que as Ações do GitHub desempenham no desenvolvimento de aplicações .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.

Ações do GitHub

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

  • ações/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 de .NET para identificar versões alvo fora de suporte do .NET.

Embora esses comandos sejam isolados em uma única ação, eles são poderosos por meio 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 está em execução, ele é instruído a realizar vários trabalhos . Cada trabalho define qualquer número de etapas . As etapas delegam para as 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 , 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 o .NET

Arquivo 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 deve ser 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 no 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 nos seus ficheiros de fluxo de trabalho, referencie os segredos usando a sintaxe de expressão de fluxo de trabalho a partir do objeto de contexto secrets.

${{ 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 ao seguinte:

MY_SECRET_VALUE: ***

Importante

O contexto secrets fornece o token de autenticação do GitHub abrangendo o repositório, o ramo e a 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.

Eventos

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 eventos push 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 evento schedule especifica o cron de '0 0 1 * *' que acionará o fluxo de 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 evento workflow_dispatch requer um reason como entrada. 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 imprimirá o motivo fornecido pelo usuário.

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

CLI do .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 é utilizada para run como parte dos steps individuais dentro de um ficheiro de fluxo de trabalho. Os comandos comuns incluem:

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

Ver também

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