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-legacy 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-legacy 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-legacy 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:
name: minha-task
description: "Descreva o seu task explicando o seu proposito."
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:
windows: |
echo "Estou no windows"
git add . & git commit -m "{{inputs.message}}"
mac: |
echo "Estou no mac"
git add . ; git commit -m "{{inputs.message}}"
linux: |
echo "Estou no linux"
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.
Esta página foi útil?