devzcommunity/community

TALK: Task como task runner

Opened this issue · 0 comments

Acerca

Task es una herramienta de automatización de tareas repetitivas configurable a través de archivos YAML.

Beneficios

La audiencia aprenderá como configurar Task para automatizar comandos básicos de shell así como aprovechar las funcionalidades avanzadas de la herramienta como interactividad, variables de entorno, parámetros, pruebas de idempotencia y precondiciones.

Preview

version: '3'

env:
  DATABASE_PASSWORD: "my-secure-password"

tasks:
  up:
    desc: Set up dev environment
    cmds:
      - docker-compose up -d
      - sleep 2
      - task: db:migrate-up
      - echo "dev environment is ready."

  down:
    desc: Tear down dev environment
    cmds:
      - docker-compose down -v

  reset:
   desc: Rest dev environment
    cmds:
      - task: down
      - task: up

  db:connect:
    desc: Connect to localhost database
    internal: true
    cmds:
      - PGPASSWORD=$DATABASE_PASSWORD psql -h localhost -d mydb -U user {{.OPTIONS}}
    preconditions:
      - sh: which psql
      - msg: "psql command not found, please install and run again"
      
  db:migrate-up:
    cmds:
      - task: db:connect
        vars: { OPTIONS: '-f migrations/base.up.sql' }

  db:migrate-down:
    cmds:
      - task: db:connect
        vars: { OPTIONS: '-f migrations/base.down.sql' }

Referencias