No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de GitHub Actions

Curso de GitHub Actions

Juan José Torres

Juan José Torres

Expresiones para agregar lógica a un workflow

7/18
Recursos

GitHub Actions permite a los desarrolladores automatizar, personalizar y ejecutar sus flujos de trabajo de software directamente en GitHub.

Uno de los elementos claves para comenzar es la creación de un workflow file, también conocido como .yml file. Por ejemplo, un archivo llamado triggers.yml puede hacer que GitHub Actions reconozca que ha completado un desafío específico.

¿Cómo se crea un workflow file?

Primero, debe asignar un nombre descriptivo a su workflow, por ejemplo, triggers. A esto, a veces se le llama run name. Este término se refiere a lo que aparecerá en la consola o en la sección de acciones de GitHub.

Es importante porque a menudo hay más de un workflow en un repositorio, por lo que un run name claro puede ayudar a diferenciarlos.

¿Cómo se seleccionan los triggers correctos en un workflow file?

Se pueden usar una amplia variedad de triggers para iniciar un workflow. Estos pueden incluir:

  • Push, que ejecuta el workflow cada vez que se realiza un 'push' a la rama maestra.
  • Pull Request, que se activa cada vez que se abre un 'pull request'.
  • Workflow Dispatch, que permite a los usuarios ejecutar workflows manualmente.
  • Schedule, que ejecuta workflows en un horario específico.

¿Cómo se utilizan las expresiones en GitHub Actions?

Las expresiones son elementos indispensables en GitHub Actions. Permiten acceder a valores literales o de variables, comparar diferentes expresiones y utilizar varias funciones.

Existen muchas funciones comunes, como if, contains, toJson y fromJson, que desempeñan roles esenciales en el control de los workflows. Por ejemplo, la función if se puede usar para determinar si se ejecuta un trabajo, mientras que contains puede restringir la ejecución a situaciones específicas.

Por ahora, te animo a jugar con lo que has aprendido y te desafío a crear un archivo workflow llamado 'expresiones.yml' que utilice al menos tres de las expresiones que hemos discutido. Para una guía completa de todas las funciones disponibles de GitHub Actions, consulta la documentación oficial de GitHub.

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

name: Expression
on:
	workflow_dispatch:
		inputs:
			edad:
				description: 'Edad'
				required: true
				type: integer
			nombre:
				description: 'Tu nombre'
				required: true
				default: 'Juan'
				type: string
jobs:
	mayor:
		if: ${{ inputs.edad >= 18 }}
		runs-on: ubuntu-latest
		steps:
			- name : Correr script
				run: echo ${{ inputs.nombre }} es mayor de edad
	menor:
		if: ${{ inputs.edad < 18 }}
		runs-on: ubuntu-latest
		steps:
			- name : Correr script
				run: echo ${{ inputs.nombre }} es menor de edad

name: Expresiones run-name: ¡Estoy aprendiendo a usar Expresiones! on: workflow\_dispatch: inputs: edad: description: 'Edad' required: true type: integer nombre: description: 'Tu nombre' required: true default: 'Juan' type: string jobs: mayor: if: ${{ inputs.edad >= 18 }} runs-on: ubuntu-latest steps: \- name: Correr script run: echo ${{ inputs.nombre }} es mayor de edad menor: if: ${{ inputs.edad < 18 }} runs-on: ubuntu-latest steps: \- name: Correr script run: echo ${{ inputs.nombre }} es menor de edad
name: Expresiones
on:
  workflow_dispatch:
    inputs:
      edad:
        description: '¿Qué edad tienes?'
        required: true
        type: integer
      nombre:
        description: ¿Cómo te llamas?
        required: true
        default: Agustina
        type: string
      nacionalidad:
        description: ¿Dónde naciste?
        required: true
        type: string
jobs:
  mayor:
    if: ${{ inputs.edad >= 18 }}
    runs-on: ubuntu-latest
    steps:
      - name: correr script
        run: echo ${{ inputs.nombre }} es mayor de edad
  menor: 
    if: ${{ inputs.edad < 18 }}
    runs-on: ubuntu-latest
    steps:
      - name: correr script
        run: echo ${{ inputs.nombre }} es menor de edad
  suscripcion_no:
    if: ${{ inputs.nacionalidad != España }}
    runs-on: ubuntu-latest
    steps: 
      - name: correr script
        run: echo ${{ inputs.nacionalidad}} no es un país apto para la suscripción.
  suscripcion_si:
    if: ${{ inputs.nacionalidad == España }}
    runs-on: ubuntu-latest
    steps: 
      - name: correr script
        run: echo ${{ inputs.nacionalidad}}  es un país apto para la suscripción.       

 

Reto 3

name: Reto 3 - Aprende a usar Expresiones
on:
  push:
    branches:
      - aprendiendo-github-actions

  workflow_dispatch:
    inputs:
      nombre:
        description: 'Nombre'
        required: true
        default: Ingresa tu nombre
        type: string
      edad:
        description: 'Edad'
        required: true
        type: number
      fruta:
        description: 'Lista de Frutas'
        default: Manzana
        required: true
        type: choice
        options:
        - Frutilla
        - Pera
        - Manzana
jobs:
    fruta-favorita:
      runs-on: ubuntu-latest
      steps:
      - name: Fruta Seleccionada
        run: |
          if ${{ inputs.fruta == 'Frutilla' }}; then
            echo ${{ inputs.nombre }} Tu fruta favorita es la Frutilla 
          elif ${{ inputs.fruta == 'Pera' }}; then
            echo ${{ inputs.nombre }} Tu fruta favorita es la Pera
          else 
            echo ${{ inputs.nombre }} Tu fruta favorita es la Manzana
          fi
    mayor:
      if: ${{ inputs.edad >= 18 }} 
      runs-on: ubuntu-latest
      steps:
        - name: Correr script
          run: echo ${{ inputs.nombre }} es mayor de edad
    menor:
      if: ${{ inputs.edad < 18 }} 
      runs-on: ubuntu-latest
      steps:
        - name: Correr script
          run: echo ${{ inputs.nombre }} es menor de edad