Las expresiones son el conjunto de caracteres especiales, operadores y tipos de datos que podemos usar dentro de Actions para crear lógicas en nuestros Workflows de manera concisa e inteligente.

Antes de entrar en profundidad sobre las expresiones de Actions debemos resolver el reto 2 del repositorio para desbloquear el contenido de este módulo

Resolviendo el reto 2

El reto 2 constaba en crear un Workflow que se activara al menos con 3 triggers diferentes y que corrieran una serie de jobs a voluntad. A continuación indagaremos en la solución dada por el curso.

Tendremos un Workflow llamado Triggers con un run-name de “¡Estoy aprendiendo a usar diferentes Triggers!”, este se activará por 3 triggers:

Push → Cada que suceda un push en la rama máster.

Pull Request → Cada que se abra un PR, se haga un commit o se reabra en un archivo .py.

Issues → Cuando se etiquete un Issue (ignorará cuando se abre).

Workflow Dispatch → Se definirán 2 inputs, lenguaje_favorito y nombre.

Finalmente se correrán 2 jobs: hola-mundo-manual y hola-mundo (que revisará que el llamado no ha sido por Workflow dispatch).

name: Triggers
run-name: ¡Estoy aprendiendo a usar diferentes Triggers!
on:
  push:
    branches:
      - master
  pull_request:
    types: [opened, synchronize, reopened]
    paths:
      - '**.py'
  issues:
    types:
      - labeled
  workflow_dispatch:
    inputs:
      lenguaje_favorito:
        description: 'Lenguaje favorito'
        default: Python
        required: true
        type: choice
        options:
        - Python
        - JavaScript
        - Go
      nombre:
        description: 'Tu nombre'
        required: true
        default: Juan
        type: string
  schedule:
    - cron:  '15 22 * * *'
jobs:
  hola-mundo-manual:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Definir nombre
        run: echo "USERNAME=${{ inputs.nombre }}" >> $GITHUB_ENV
      - name: Definir lenguaje
        run: echo "LANGUAGE=${{ inputs.lenguaje_favorito }}" >> $GITHUB_ENV
      - name: Correr script
        run: python hola_lenguaje.py
  hola-mundo:
    if: ${{ github.event_name != 'workflow_dispatch' }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Definir variable
        run: echo "USERNAME=${{ github.actor }}" >> $GITHUB_ENV
      - name: Correr script
        run: python hola_mundo.py