Esta versión de GitHub Enterprise se discontinuó el 2021-09-23. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

Publicar e instalar un paquete con GitHub Actions

Puedes configurar un flujo de trabajo en GitHub Actions para publicar o instalar automáticamente un paquete desde Registro del paquete de GitHub.

el Registro del paquete de GitHub se encuentra disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, Nube de GitHub Enterprise, GitHub Enterprise Server, y GitHub AE.

Nota: El Registro del paquete de GitHub se encuentra actualmente en beta para GitHub Enterprise Server 2.22. Para unirte al beta de tu instancia de GitHub Enterprise Server, utiliza el formato de registro.

Acerca de Registro del paquete de GitHub con GitHub Actions

GitHub Actions te ayuda a automatizar tus flujos de trabajo de desarrollo de software en el mismo lugar en el que almacenas código y colaboras con informes de problemas y solicitudes de extracción. Puedes escribir tareas individuales, llamadas acciones, y combinarlas para crear un flujo de trabajo personalizado. Con GitHub Actions puedes crear capacidades de integración continua (CI, por sus siglas en inglés) de extremo a extremo y de funcionamiento continuo (CD, por sus siglas en inglés) directamente en tu repositorio. Para obtener más información, consulta "Acerca de GitHub Actions."

Puedes ampliar las capacidades de CI y CD de tu repositorio publicando o instalando paquetes como parte de tu flujo de trabajo.

Autenticarse en los registros de paquetes en GitHub

Para autenticarse en registros de paquetes en GitHub Enterprise Server, te recomendamos utilizar el GITHUB_TOKEN que GitHub Enterprise Server crea automáticamente para tu repositorio cuando habilitas las GitHub Actions en vez de un token de acceso personal para autenticación. Tiene permisos de lectura y escritura para los paquetes del repositorio en donde se ejecuta el flujo de trabajo. Para las bifurcaciones, se otorga acceso de lectura al GITHUB_TOKEN en el repositorio padre. Para obtener más información, consulta "Autenticar con el GITHUB_TOKEN".

Puedes hacer referencia al GITHUB_TOKEN en tu archivo de flujo de trabajo mediante el contexto {{secrets.GITHUB_TOKEN}}. Para más información, consulta "Autenticando con el GITHUB_TOKEN."

Acerca de los permisos y acceso a los paquetes para los paquetes que pertenecen a los repositorios

Nota: Los paquetes que pertenecen a repositorios incluyen RubyGems, npm, Apache Maven, NuGet, Los paquetes de Gradle y de Docker que utilizan el designador de nombre del paquete docker.pkg.github.com.

Cuando habilitas las Acciones de GitHub, GitHub instala una App GitHub en tu repositorio. El secreto del GITHUB_TOKEN es un token de acceso a la instalación de GitHub App. Puedes utilizar el token de acceso a la instalación para autenticarte en nombre de la GitHub App instalada en tu repositorio. Los permisos del token están limitados al repositorio que contiene tu flujo de trabajo. Para obtener más información, consulta la sección "Permisos para el GITHUB_TOKEN".

El Registro del paquete de GitHub te permite subir y extraer paquetes mediante el GITHUB_TOKEN que está disponible para un flujo de trabajo de GitHub Actions.

Publicar un paquete mediante una acción

Puedes utilizar GitHub Actions para publicar paquetes automáticamente como parte de tu flujo de integración contínua (IC). Este acercamiento a los despliegues contínuos (DC) te permite automatizar la creación de nuevas versiones de los paquetes si el código cumple con tus estándares de calidad. Por ejemplo, podrías crear un flujo de trabajo que ejecute pruebas de IC cada vez que un desarrollador suba código a alguna rama en particular. Si estas pruyebas pasan, el flujo de trabajo puede publicar una versión nueva del paquete en el Registro del paquete de GitHub.

Los pasos de configuración varían de acuerdo con el cliente del paquete. Para obtener información general sobre como configurar un flujo de trabajo para GitHub Actions, consulta la sección "Configurar un flujo de trabajo".

El siguiente ejemplo ilustra cómo puedes utilizar las GitHub Actions para crear y probar tu app y luego crear una imagen de Docker automáticamente y publicarla en el Registro del paquete de GitHub.

Crea un archivo de flujo de trabajo nuevo en tu repositorio (tal como .github/workflows/deploy-image.yml), y agrega el siguiente YAML:

YAML
name: Create and publish a Docker image

# This workflow uses actions that are not certified by GitHub.
# Estas las proporcionan entidades terceras y las gobiernan
# condiciones de servicio, políticas de privacidad y documentación de soporte
# documentación.

on:
  push:
    branches: ['release']

jobs:
  run-npm-build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: npm install and build webpack
        run: |
          npm install
          npm run build
      - uses: actions/upload-artifact@main
        with:
          name: webpack artifacts
          path: public/

  run-npm-test:
    runs-on: ubuntu-latest
    needs: run-npm-build
    strategy:
      matrix:
        os: [ubuntu-latest]
        node-version: [12.x, 14.x]
    steps: 
      - uses: actions/checkout@v2
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v2
        with:
          node-version: ${{ matrix.node-version }}
      - uses: actions/download-artifact@main
        with:
          name: webpack artifacts
          path: public
      - name: npm install, and test
        run: |
          npm install
          npm test
        env:
          CI: true

  build-and-push-image:
    runs-on: ubuntu-latest
    needs: run-npm-test 
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Log in to GitHub Docker Registry
        uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
        with:
          registry: docker.pkg.github.com
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - name: Build and push Docker image
        uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
        with:
          push: true
          tags: |
            docker.pkg.github.com/${{ github.repository }}/octo-image:${{ github.sha }}

La configuración relevante se explica en la siguiente tabla. Para encontrar los detalles completos de cada elemento en un flujo de trabajo, consulta la sección "Sintaxis de flujo de trabajo para GitHub Actions".

on:
  push:
    branches: ['release']
Configura el flujo de trabajo de Crear y publicar una imagen de Docker para que se ejecute cada vez que se sube un cambio a la rama que se llama release.
run-npm-build:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v2
    - name: npm install and build webpack
      run: |
        npm install
        npm run build
    - uses: actions/upload-artifact@main
      with:
        name: webpack artifacts
        path: public/
Este job instala NPM y lo utiliza para crear la app.
run-npm-test:
  runs-on: ubuntu-latest
  needs: run-npm-build
  strategy:
    matrix:
      os: [ubuntu-latest]
      node-version: [12.x, 14.x]
  steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
    - uses: actions/download-artifact@main
      with:
        name: webpack artifacts
        path: public
    - name: npm install, and test
      run: |
        npm install
        npm test
      env:
        CI: true
Este job utiliza npm test para probar el código. El comando needs: run-npm-build hace que este job dependa del job run-npm-build.
build-and-push-image:
  runs-on: ubuntu-latest
  needs: run-npm-test
Este job publica el paquete. El comando needs: run-npm-test hace que este job dependa del job run-npm-test.
- name: Log in to GitHub Docker Registry
  uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
  with:
    registry: docker.pkg.github.com
    username: ${{ github.actor }}
    password: ${{ secrets.GITHUB_TOKEN }}
Crea un paso nuevo que se llame Log in to GitHub Docker Registry, el cual inicia sesión en el registro utilizando la cuenta y contraseña que publicará los paquetes. Una vez que se publica, los paquetes pertenecerán a la cuenta que se define aquí.
- name: Build and push Docker image
Crea un paso nuevo que se llama Build and push Docker image. Este paso se ejecuta como parte del job build-and-push-image.
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
Utiliza la acción build-push-action de Docker para crear la imagen, basándose en el Dockerfile de tu repositorio. Si la compilación es exitosa, sube la imagen al Registro del paquete de GitHub.
with:
Envía los parámetros requeridas a la acción build-push-action. Estas se definen en líneas subsecuentes.
push: true
Sube esta imagen al registro si se compila con éxito.
tags: |
docker.pkg.github.com/${{ github.repository }}/octo-image:${{ github.sha }}
Etiqueta la imagen con el SHA de la confirmación que activó el flujo de trabajo.

Este flujo de trabajo nuevo se ejecutará automáticamente cada que subas un cambio a una rama que se llame release en el repositorio. Puedes ver el progreso en la pestaña de Acciones.

Unos minutos después de que se complete el flujo de trabajo, el paquete nuevo podrá visualizarse en tu repositorio. Para encontrar tus paquetes disponibles, consulta la sección "Visualizar los paquetes de un repositorio".

Instalar un paquete mediante una acción

Puedes instalar paquetes como parte de tu flujo de CI mediante GitHub Actions. Por ejemplo, podrías configurar un flujo de trabajo para que cada vez que un programador suba código a una solicitud de extracción, el flujo de trabajo resuelva las dependencias al descargar e instalar paquetes alojados por el Registro del paquete de GitHub. Luego, el flujo de trabajo puede ejecutar pruebas de CI que requieran las dependencias.

El instalar los paquetes que hospeda el Registro del paquete de GitHub a través de las GitHub Actions requiere una configuración mínima o autenticación adicional cuando utilizas un GITHUB_TOKEN.

Los pasos de configuración varían de acuerdo con el cliente del paquete. Para obtener información general sobre como configurar un flujo de trabajo para GitHub Actions, consulta la sección "Configurar un flujo de trabajo".