Skip to main content

Esta versión de GitHub Enterprise Server se discontinuará el 2026-08-25. No se admiten versiones discontinuas. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para mejorar el rendimiento, mejorar la seguridad y las nuevas características de GitHub Enterprise Server, consulte Información general del proceso de actualización. Para obtener ayuda con la actualización, GitHub Soporte técnico empresarial.

Migración de Travis CI a Acciones de GitHub

GitHub Actions y Travis CI comparten varias similitudes, lo que ayuda a que sea relativamente sencillo migrar a GitHub Actions.

Nota:

Actualmente los ejecutores hospedados por GitHub Enterprise Server no se admiten en GitHub.

Introducción

Esta guía le ayuda a migrar de Travis CI a GitHub Actions. Aquí se comparan sus conceptos y sintaxis, se describen sus similitudes y se demuestran sus acercamientos distintos para las tareas comunes.

Antes de comenzar

Antes de iniciar la migración a GitHub Actions, sería útil familiarizarse con cómo funciona:

Comparar la ejecución de tareas

Para proporcionarle control sobre cuándo se ejecutan las tareas de CI, un GitHub Actions_flujo de trabajo_ usa trabajos que se ejecutan en paralelo de forma predeterminada. Cada trabajo contiene pasos que se ejecutan en una secuencia definida por usted. Si necesitas ejecutar acciones de configuración y limpieza para un job, puedes definir pasos en cada job para que esto se lleve a cabo.

Similitudes Clave

GitHub Actions y Travis CI comparten ciertas similitudes y comprenderlas con antelación pueden ayudar a suavizar el proceso de migración.

Utilizar la sintaxis de YAML

Travis CI y GitHub Actions ambos usan YAML para crear trabajos y flujos de trabajo, y estos archivos se almacenan en el repositorio del código. Para obtener más información sobre cómo GitHub Actions usa YAML, consulte Creación de un flujo de trabajo de ejemplo.

Variables personalizadas

Travis CI te permite configurar variables y compartirlas entre etapas. Del mismo modo, GitHub Actions permite definir variables para un flujo de trabajo. Para más información, consulta Almacenamiento de información en variables.

Variables predeterminadas

Travis CI e GitHub Actions incluyen variables de entorno predeterminadas que puede usar en los archivos YAML. Para GitHub Actions, puede ver estos en Referencia de variables.

Procesamiento paralelo de trabajos

Travis CI puede usar stages para ejecutar trabajos en paralelo. De forma similar, GitHub Actions se ejecuta jobs en paralelo. Para más información, consulta Sintaxis del flujo de trabajo para Acciones de GitHub.

Insignias de estado

Travis CI y GitHub Actions ambos admiten notificaciones de estado, lo que le permite indicar si una compilación se está pasando o con errores. Para más información, consulta Adición de un distintivo de estado de flujo de trabajo.

Uso de una matriz

Travis CI y GitHub Actions ambos admiten una matriz, lo que le permite realizar pruebas mediante combinaciones de sistemas operativos y paquetes de software. Para más información, consulta Ejecución de variaciones de trabajos en un flujo de trabajo.

A continuación, podrás encontrar un ejemplo que compara la sintaxis de cada sistema.

Sintaxis de Travis CI en una matriz

matrix:
  include:
    - rvm: '2.5'
    - rvm: '2.6.3'

GitHub Actions sintaxis de una matriz

jobs:
  build:
    strategy:
      matrix:
        ruby: ['2.5', '2.6.3']

Apuntar a ramas específicas

Travis CI y GitHub Actions ambos le permiten dirigirse a la CI a una rama específica. Para más información, consulta Sintaxis del flujo de trabajo para Acciones de GitHub.

A continuación encontrarás un ejemplo de la sintaxis para cada sistema.

Sintaxis de Travis CI para dirigirse a ramas específicas

branches:
  only:
    - main
    - 'mona/octocat'

GitHub Actions sintaxis para dirigirse a ramas específicas

on:
  push:
    branches:
      - main
      - 'mona/octocat'

Verificar submódulos

Travis CI y GitHub Actions ambos permiten controlar si los submódulos se incluyen en el clon del repositorio.

A continuación encontrarás un ejemplo de la sintaxis para cada sistema.

Sintaxis de Travis CI para extraer submódulos

git:
  submodules: false

GitHub Actions sintaxis para desprotegentes submódulos

- uses: actions/checkout@v6
  with:
    submodules: false

Utilizar variables de ambiente en una matriz

Travis CI y GitHub Actions puede agregar variables personalizadas a una matriz de prueba, lo que le permite hacer referencia a la variable en un paso posterior.

En GitHub Actions, puede usar la include clave para agregar variables de entorno personalizadas a una matriz. En este ejemplo, las entradas de matriz de node-version se configuran a fin de usar otro valores para las variables de entorno site y datacenter. Después, el paso Echo site details usa env: ${{ matrix.env }} para hacer referencia a las variables personalizadas:

name: Node.js CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
       include:
         - node-version: '14.x'
           site: "prod"
           datacenter: "site-a"
         - node-version: '16.x'
           site: "dev"
           datacenter: "site-b"
    steps:
      - name: Echo site details
        env:
          SITE: ${{ matrix.site }}
          DATACENTER: ${{ matrix.datacenter }}
        run: echo $SITE $DATACENTER

Características clave de GitHub Actions

Al migrar desde Travis CI, tenga en cuenta las siguientes características clave en GitHub Actions:

Almacenamiento de secretos

GitHub Actions permite almacenar secretos y hacer referencia a ellos en los trabajos. GitHub Actions Las organizaciones pueden limitar qué repositorios pueden acceder a los secretos de la organización. Las reglas de protección de implementación pueden requerir aprobación manual para que un flujo de trabajo acceda a los secretos del ambiente. Para más información, consulta Secretos.

Compartir archivos entre tareas y flujos de trabajo

GitHub Actions incluye compatibilidad integrada con el almacenamiento de artefactos, lo que le permite compartir archivos entre trabajos en un flujo de trabajo. También puedes guardar los archivos resultantes y compartirlos con otros flujos de trabajo. Para más información, consulta Descripción de Acciones de GitHub.

Alojar tus propios corredores

Si los trabajos requieren hardware o software específicos, GitHub Actions le permite hospedar sus propios ejecutores y enviar sus trabajos a ellos para su procesamiento. GitHub Actions también le permite usar directivas para controlar cómo se accede a estos ejecutores, concediéndole acceso en el nivel de organización o repositorio. Para más información, consulta Administración de ejecutores autohospedados.

Uso de idiomas diferentes en GitHub Actions

Al trabajar con diferentes idiomas en GitHub Actions, puede crear un paso en el trabajo para configurar las dependencias de lenguaje. Para obtener más información acerca de cómo trabajar con un lenguaje en particular, consulta Construir y probar tu código.

Ejecución de scripts

GitHub Actions puede usar run los pasos para ejecutar scripts o comandos de shell. Para usar un shell determinado, puede especificar el tipo shell al proporcionar la ruta de acceso al script. Para más información, consulta Sintaxis del flujo de trabajo para Acciones de GitHub.

Por ejemplo:

steps:
  - name: Run build script
    run: ./.github/scripts/build.sh
    shell: bash

Control de errores en GitHub Actions

Al migrar a GitHub Actions, hay diferentes enfoques para el control de errores que es posible que deba tener en cuenta.

Manejo de errores en scripts

GitHub Actions detiene un trabajo inmediatamente si uno de los pasos devuelve un código de error. Para más información, consulta Sintaxis del flujo de trabajo para Acciones de GitHub.

Manejo de errores en tareas

GitHub Actions usa if condicionales para ejecutar trabajos o pasos en determinadas situaciones. Por ejemplo, puede ejecutar un paso cuando otro paso da como resultado failure(). Para más información, consulta Sintaxis del flujo de trabajo para Acciones de GitHub. También puede usar continue-on-error para evitar que una ejecución de flujo de trabajo se detenga cuando se produce un error en un trabajo.

Sintaxis de migración para condicionales y expresiones

Para ejecutar trabajos en expresiones condicionales, Travis CI y GitHub Actions compartir una sintaxis de condición similar if . GitHub Actions permite usar el if condicional para evitar que se ejecute un trabajo o un paso a menos que se cumpla una condición. Para más información, consulta Evaluación de expresiones en flujos de trabajo y acciones.

En este ejemplo se muestra cómo un condicional if puede controlar si se ejecuta un paso:

jobs:
  conditional:
    runs-on: ubuntu-latest
    steps:
      - run: echo "This step runs with str equals 'ABC' and num equals 123"
        if: env.str == 'ABC' && env.num == 123

Migrar las fases a pasos

Donde Travis CI usa fases para ejecutar pasos, GitHub Actions tiene pasos que ejecutan acciones. Puede encontrar acciones precompiladas en GitHub Marketplaceo puede crear sus propias acciones. Para más información, consulta Reutilización de automatizaciones.

A continuación encontrarás un ejemplo de la sintaxis para cada sistema.

Sintaxis de Travis CI para fases y pasos

language: python
python:
  - "3.7"

script:
  - python script.py

GitHub Actions sintaxis de pasos y acciones

jobs:
  run_python:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-python@v5
        with:
          python-version: '3.7'
          architecture: 'x64'
      - run: python script.py

Almacenar dependencias en caché

Travis CI y GitHub Actions le permite almacenar en caché manualmente las dependencias para su reutilización posterior.

En estos ejemplos se muestra la sintaxis de caché de cada sistema.

Sintaxis de Travis CI para el almacenamiento en caché

language: node_js
cache: npm

sintaxis de Acciones de GitHub para el almacenamiento en caché

- name: Cache node modules
  uses: actions/cache@v4
  with:
    path: ~/.npm
    key: v1-npm-deps-${{ hashFiles('**/package-lock.json') }}
    restore-keys: v1-npm-deps-

Ejemplos de tareas comunes

En esta sección se compara cómo GitHub Actions y Travis CI realizan tareas comunes.

Configurar variables de ambiente

Puede crear variables de entorno personalizadas en un GitHub Actions trabajo.

Sintaxis de Travis CI para una variable de entorno

env:
  - MAVEN_PATH="/usr/local/maven"

GitHub Actions flujo de trabajo con una variable de entorno

jobs:
  maven-build:
    env:
      MAVEN_PATH: '/usr/local/maven'

Compilar con Node.js

Travis CI para la compilación con Node.js

install:
  - npm install
script:
  - npm run build
  - npm test

GitHub Actions flujo de trabajo para compilar con Node.js

name: Node.js CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Use Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '16.x'
      - run: npm install
      - run: npm run build
      - run: npm test

Pasos siguientes

Para seguir aprendiendo sobre las características principales de GitHub Actions, consulte Escritura de flujos de trabajo.