Skip to content

TALK: Task como task runner #46

@larsx2

Description

@larsx2

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions