Compartir a través de


Acciones de GitHub y .NET

En este resumen, aprenderá qué rol GitHub Actions desempeñan en el desarrollo de aplicaciones .NET. Acciones de GitHub permiten que los repositorios de código fuente automaticen la integración continua (CI) y la entrega continua (CD). Además, acciones de GitHub exponen escenarios más avanzados, lo que proporciona enlaces para la automatización con revisiones de código, administración de ramas y evaluación de problemas. Con el código fuente de .NET en GitHub, puede aprovechar Acciones de GitHub de muchas maneras.

Acciones de GitHub

Acciones de GitHub representan comandos independientes, como:

  • actions/checkout: esta acción desprotegerá el repositorio en $GITHUB_WORKSPACE, para que el flujo de trabajo pueda acceder a él.
  • actions/setup-dotnet: esta acción configura un entorno de la CLI de .NET para su uso en acciones.
  • dotnet/versionsweeper: Esta acción barrió los repositorios de .NET para versiones de destino fuera de soporte técnico de .NET.

Aunque estos comandos están aislados en una sola acción, son eficaces a través de la composición del flujo de trabajo. En la composición del flujo de trabajo, se definen los eventos de que desencadenan el flujo de trabajo. Una vez que un flujo de trabajo está en ejecución, hay varios trabajos que se le indica realizar. Cada trabajo define cualquier número de pasos. Los pasos delegan para Acciones de GitHub o, como alternativa, llamar a scripts de línea de comandos.

Para obtener más información, consulte Introducción a acciones de GitHub. Piense en un archivo de flujo de trabajo como una composición que representa los distintos pasos para compilar, probar o publicar una aplicación. Hay muchos comandos de la CLI de .NET disponibles, la mayoría de los cuales se pueden usar en el contexto de una acción de GitHub.

Acciones personalizadas de GitHub

Aunque hay una gran cantidad de GitHub Actions disponibles en Marketplace, es posible que quieras crear las tuyas propias. Puede crear acciones de GitHub que ejecuten aplicaciones .NET. Para obtener más información, consulte Tutorial: Creación de una acción de GitHub con .NET

Archivo de flujo de trabajo

Las acciones de GitHub se usan a través de un archivo de flujo de trabajo. El archivo de flujo de trabajo debe encontrarse en el directorio de .github/workflows del repositorio y se espera que sea YAML (ya sea *.yml o *.yaml). Los archivos de flujo de trabajo definen la composición del flujo de trabajo. Un flujo de trabajo es un proceso automatizado configurable formado por uno o varios trabajos. Para más información, consulte Sintaxis de flujo de trabajo para Acciones de GitHub.

Archivos de flujo de trabajo de ejemplo

Hay muchos ejemplos de archivos de flujo de trabajo de .NET proporcionados como tutoriales e inicios rápidos. Estos son varios buenos ejemplos de nombres de archivo de flujo de trabajo:

nombre de archivo de flujo de trabajo

Descripción

Compila (o construye) el código fuente. Si el código fuente no se compila, se producirá un error.

Realiza ejercicios de las pruebas unitarias dentro del repositorio. Para ejecutar pruebas, primero se debe compilar el código fuente, es decir, un flujo de trabajo de compilación y prueba (reemplazaría el flujo de trabajo de build-validation.yml). Las pruebas unitarias con errores provocarán un error de flujo de trabajo.

Empaqueta y publica el código fuente en un destino.

Analiza el código para detectar vulnerabilidades de seguridad y errores de codificación. Las vulnerabilidades detectadas podrían provocar errores.

Secretos cifrados

Para usar secretos cifrados en los archivos de flujo de trabajo, haga referencia a los secretos mediante la sintaxis de expresión de flujo de trabajo del objeto de contexto secrets.

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

Los valores secretos nunca se imprimen en los registros. En su lugar, sus nombres se imprimen con un asterisco que representa sus valores. Por ejemplo, a medida que cada paso se ejecuta dentro de un trabajo, todos los valores que utiliza se registran en el log de acciones. Los valores secretos se representan de forma similar a la siguiente:

MY_SECRET_VALUE: ***

Importante

El contexto de secrets proporciona el token de autenticación de GitHub que tiene como ámbito el repositorio, la rama y la acción. Lo proporciona GitHub sin intervención del usuario:

${{ secrets.GITHUB_TOKEN }}

Para obtener más información, consulte Uso de secretos cifrados en un flujo de trabajo.

Eventos

Los flujos de trabajo se desencadenan mediante muchos tipos diferentes de eventos. Además de los eventos de Webhook, que son los más comunes, también hay eventos programados y eventos manuales.

Ejemplo de evento de Webhook

En el ejemplo siguiente se muestra cómo especificar un desencadenador de eventos de webhook para un flujo de trabajo:

name: code coverage

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

jobs:
  coverage:

    runs-on: ubuntu-latest

    # steps omitted for brevity

En el flujo de trabajo anterior, los eventos push y pull_request desencadenarán el flujo de trabajo que se va a ejecutar.

Evento programado de ejemplo

En el ejemplo siguiente se muestra cómo especificar un desencadenador de eventos programado (cron job) para un flujo de trabajo:

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

jobs:
  build:
    runs-on: ubuntu-latest

    # steps omitted for brevity

En el flujo de trabajo anterior, el evento schedule especifica el cron de '0 0 1 * *' que desencadenará el flujo de trabajo que se ejecutará el primer día de cada mes. La ejecución de flujos de trabajo según una programación es excelente para los flujos de trabajo que tardan mucho tiempo en ejecutarse o realizar acciones que requieren menos atención.

Evento manual de ejemplo

En el ejemplo siguiente se muestra cómo especificar un desencadenador de eventos manual para un flujo de trabajo:

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

En el flujo de trabajo anterior, el evento workflow_dispatch requiere un reason como entrada. GitHub ve esto y su interfaz de usuario cambia dinámicamente para solicitar al usuario proporcionar el motivo para realizar el flujo de trabajo manualmente. El steps imprimirá el motivo proporcionado por el usuario.

Para obtener más información, consulte eventos que desencadenan flujos de trabajo.

CLI de .NET

La interfaz de línea de comandos (CLI) de .NET es una cadena de herramientas multiplataforma para desarrollar, compilar, ejecutar y publicar aplicaciones .NET. La CLI de .NET se usa en run como parte de una persona steps dentro de un archivo de flujo de trabajo. El comando común incluye:

Para obtener más información, vea Información general sobre la CLI de .NET

Consulte también

Para obtener una visión más detallada de Acciones de GitHub con .NET, tenga en cuenta los siguientes recursos: