task.yaml

Nesta seção, você encontra a referência sobre o arquivo task.yaml.

O arquivo task.yaml contém a estrutura básica para você configurar operações para serem executadas em uma Stack ou projeto.

Atributos do arquivo task.yaml

Para criar uma Task, use o comando stk create task, você terá a estrutura básica da sua Task conforme o exemplo abaixo:

name: <nome-da-sua-task>
description: <texto-descrição-task>
inputs:
- label: Commit message
  type: text
  default: example
  name: message
  required: 'true'
supported-os:
- windows
- linux
- mac
requirements-check:
  dependency-example:
    check-command: git --version
    info: git is not installed
command: git add . ; git commit -m "{{inputs.message}}"

Atributos Obrigatórios da Task

name

String que define o nome da Task. Esta informação define o nome da Task para ser executada pelo comando stk run.

name: <nome-da-sua-task>

description

String que descreve o propósito da Task, deve conter informações que sejam relevantes para serem exibidas para os consumidores no comando stk list task.

description: <texto-descrição-task>

supported-os

Parâmetro para definir os sistemas operacionais que a Task será compatível. As opções aceitas são:

supported-os:
- windows
- linux
- mac

command

Comando ou lista de comandos para serem executados pela Task. É possível dividir a execução por sistema operacional usando os objetos com o nome do sistema operacional:

command: git add . ; git commit -m "{{inputs.message}}"

Ou por sistema operacional:

command:
- linux:  |
    echo "Estou no linux"
    git add . ; git commit -m "{{inputs.message}}"
- mac: |
    echo "Estou no macOS"
    git add . ; git commit -m "{{inputs.message}}"
- windows: |
    echo "Estou no windows"
    git add . ; git commit -m "{{inputs.message}}"

Atributos Opcionais da Task

requirements-check

Lista de requisitos que serão checados antes da execução da lista de comandos. A opção disponível é a dependency-example com os parâmetros check-command e info:

requirements-check:
  dependency-example:
    check-command: git --version
    info: git is not installed

check-command

String com o comando para ser executado durante a checagem de requisitos:

check-command: git --version

info

String com a mensagem para ser exibida caso a checagem dos requisitos falhe:

info: git is not installed

container

Executa o command da task dentro de um container docker.

container:
  image: alpine
  volumes: # opcional
    - "{{ component_path.absolute() }}:/data"

image

String com a URL da imagem, ou o caminho relativo de um Dockerfile, dentro do diretório da Task.

#### **Usar uma imagem do Docker Hub**
image: ubuntu

#### **Usar um Dockerfile localizado dentro da Task**
image: Dockerfile.test 

Exemplo de diretório, utilizando Dockerfile customizado.

my-stack
├── tasks
│   ├── task-docker
│   │   ├── Dockerfile.test
│   │   └── task.yaml

Quando um Dockerfile é utilizado, a Task vai construir a imagem Docker e em seguida executar as ações da Task. A tag da imagem gerada será \<stack-name\>/\<task-name\>:latest.

volumes

É a lista com os volumes que são montados durante a execução da Task. Confira um exemplo:

volumes:
  - /my/files:data
  - "{{ target_path.absolute() }}:/project"

inputs

Confira em Inputs dos arquivos .yaml todos os tipos de inputs disponíveis.

Próximos passos

Para mais informações sobre todos os tipos de inputs disponíveis, confira a seção Inputs dos arquivos .yaml.