GitHub Actions

🐙🧑‍🔧

Automatiza, customiza, y ejecuta tu workflow en GitHub

Código fuente Workflow

Alternativas

¿Dónde encontrarlo?

Integrado en tu repo

Integrado en cada commit

Feedback automático

Información y logs detallados

Pero antes...

¿Qué es CI/CD?

¿Es lo mismo hacer CI/CD que automatizar?

¿Qué es compatibilidad hacia atrás o backward compatibility?

¿Qué es Semantic Versioning?

Major

Cambio grande en la API que hace incompatible con versiones anteriores

Minor

Cambio menor que mantiene compatibilidad hacia atrás

Patch

Parche, corrección de bugs, fixes menores

Conceptos básicos

Action

Es el bloque portable más pequeño

Artifact

Es el resultado, ficheros, paquetes, logs generados por los actions

📦

Workflow

Es el conjunto de acciones ordenadas para realizar un propósito

Event

La actividad que dispara la ejecución de un workflow

Step

Cada uno de los pasos que se van ejecutando.

Pueden ser commands o actions

Job

Un conjunto de steps para ser ejecutados en un momento dado

Event Workflow Job Job Step Step Step Action Command Action Action

Documentación

Usando Actions

Estructura

Estructura del Workflow

name: Nombre del workflow
on: # Definición del event
jobs: # Definición de los jobs
name: Hola mundo
on: [ push ]
jobs:
  build:
    name: Saludos
    runs-on: ubuntu-latest
    steps:
      - name: Hola mundo
        uses: actions/hello-world-javascript-action@v1
        with:
          who-to-greet: 'Mona the Octocat'
        id: hello
      - name: Echo con el tiempo transcurrido
        run: echo 'El tiempo transcurrido ha sido ${{ steps.hello.outputs.time }}.'

¿Cómo tengo que definir el "on" para que el workflow se lance después de cada push?

on: [ push ]
on: push

¿Cómo tengo que definir el "on" para que el workflow se lance después de cada push?

¿Qué tengo que hacer para que se lance un workflow después de un comentario?

on:
  issue_comment:
    types:
      - created

¿Cómo tengo que definir el "on" para que el workflow se lance después de cada push?

on:
  issues:
    types:
      - opened

Tengo un repo popular y me gustaría saber cuándo me hacen un fork ¿cómo tengo que poner el on del workflow?

on:
  fork

Tengo un repo popular y me gustaría saber cuándo me hacen un fork ¿cómo tengo que poner el on del workflow?

En mi empresa usamos la wiki de github en los repos y queremos enviar a slack un mensaje cada vez que alguien haga un cambio en la wiki ¿cómo tengo que poner el on del workflow?

on:
  gollum

Tengo un repo popular y me gustaría saber cuándo me hacen un fork ¿cómo tengo que poner el on del workflow?