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
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:
Guia de início rápido(s):
Tutorial(s):