Principales Funciones en GitHub Actions: Guía Completa

Principales Funciones en GitHub Actions: Guía Completa

Introducción

GitHub Actions no solo permite la automatización de flujos de trabajo sino que también proporciona un conjunto robusto de funciones que facilitan la configuración y personalización de estos workflows. En este blog, exploraremos algunas de las funciones principales que ofrece GitHub Actions, incluyendo contains, toJSON, fromJSON, needs, outputs, secrets, env, matrix, y jobs.<job_id>.if. Acompañaremos cada función con ejemplos sencillos para ilustrar su uso.

contains

La función contains se utiliza para comprobar si una cadena contiene una subcadena específica.

Ejemplo:

				
					name: Contains Example

on: [push]

jobs:
  example_job:
    runs-on: ubuntu-latest

    steps:
    - name: Check for Substring
      if: ${{ contains(github.ref, 'feature') }}
      run: echo "La rama contiene la palabra 'feature'"
				
			

toJSON

La función toJSON convierte un objeto en una cadena JSON.

Ejemplo:

				
					name: toJSON Example

on: [push]

jobs:
  example_job:
    runs-on: ubuntu-latest

    steps:
    - name: Convert Object to JSON
      run: echo "${{ toJSON(github) }}"
				
			

fromJSON

La función fromJSON convierte una cadena JSON en un objeto.

Ejemplo:

				
					name: fromJSON Example

on: [push]

jobs:
  example_job:
    runs-on: ubuntu-latest

    steps:
    - name: Convert JSON to Object
      run: echo "${{ fromJSON('{"key":"value"}').key }}"
				
			

needs

La función needs permite que un trabajo dependa de la finalización exitosa de otro trabajo.

Ejemplo:

				
					name: Needs Example

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Build
      run: echo "Building..."

  test:
    needs: build
    runs-on: ubuntu-latest

    steps:
    - name: Test
      run: echo "Testing after build"
				
			

outputs

La función outputs se utiliza para definir y usar salidas de trabajos anteriores.

Ejemplo:

				
					name: Outputs Example

on: [push]

jobs:
  job1:
    runs-on: ubuntu-latest

    steps:
    - name: Set Output
      id: step1
      run: echo "::set-output name=myoutput::Hello"

  job2:
    needs: job1
    runs-on: ubuntu-latest

    steps:
    - name: Use Output
      run: echo "${{ needs.job1.outputs.myoutput }}"
				
			

secrets

La función secrets se usa para acceder a secretos definidos en el repositorio.

Ejemplo:

				
					name: Secrets Example

on: [push]

jobs:
  example_job:
    runs-on: ubuntu-latest

    steps:
    - name: Use Secret
      run: echo "${{ secrets.MY_SECRET }}"
				
			

env

La función env se usa para definir y acceder a variables de entorno.

Ejemplo:

				
					name: Env Example

on: [push]

jobs:
  example_job:
    runs-on: ubuntu-latest

    env:
      MY_ENV_VAR: Hello World

    steps:
    - name: Use Env Variable
      run: echo "${{ env.MY_ENV_VAR }}"
				
			

matrix

La función matrix se usa para ejecutar trabajos en múltiples configuraciones.

Ejemplo:

				
					name: Matrix Example

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node: [10, 12, 14]

    steps:
    - name: Setup Node.js
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node }}

    - name: Build
      run: echo "Building with Node.js ${{ matrix.node }}"
				
			

jobs.<job_id>.if

La función jobs.<job_id>.if se usa para condicionar la ejecución de un trabajo completo.

Ejemplo:

				
					name: Job If Example

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

  deploy:
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main'
    
    steps:
    - name: Deploy
      run: echo "Deploying to production"
				
			

Conclusión

Las funciones y operadores en GitHub Actions proporcionan una flexibilidad y personalización increíbles para automatizar tus flujos de trabajo. Al entender cómo usar contains, toJSON, fromJSON, needs, outputs, secrets, env, matrix, y jobs.<job_id>.if, puedes crear workflows más eficientes y dinámicos. Estos ejemplos simples deberían ayudarte a comenzar y explorar más las capacidades de GitHub Actions.

Facebook
X
LinkedIn
Reddit
Pinterest
Threads

Post relacionados

Post recientes

Search