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:
- instalação do fluxo de trabalho dotnet
- restauração dotnet
- construção dotnet
- teste dotnet
- dotnet publicar
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:
Guia de início rápido(s):
Tutorial(s):