stk-legacy create task
Descrição
O comando stk-legacy create task
cria um arquivo base de uma Task na Stack corrente.
Como funciona?
Ao ser executado, uma pasta com o nome da Task é criada e dentro dela um arquivo task.yaml
. Você deve editá-lo para definir as tarefas que serão executadas por sua Task.
Parâmetros
Confira as opções disponíveis no comando:
Parâmetro | Descrição |
---|---|
NAME | Define o nome da task em sua Stack. |
--description | Define uma descrição para sua task. |
Exemplo
Confira o exemplo abaixo de como criar uma Task:
- Crie uma Stack localmente, execute o comando:
stk-legacy create stack <nome-da-sua-stack>
- Entre no diretório da Stack que você criou:
cd <nome-da-sua-stack>
- Dentro do diretório da Stack, crie a sua Task:
stk-legacy create task <nome-da-sua-task>
- Descreva o que sua Task faz:
? Description: <texto-descrição-task>
- Sua Task foi criada:
- Task <nome-da-sua-task> successfully created!
- O arquivo
task.yaml
foi criado na pasta com o nome da sua Task dentro da pastatasks
na Stack corrente:
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:
- name: Nome da sua Task que será usado para invocá-la através do comando
stk-legacy run
. - description: Descrição da Task que será apresentada no comando
stk-legacy list task
. - inputs: Objetos com os valores dos inputs que serão passados para os comandos a serem executados pela Task. Eles não são obrigatórios. Caso algum valor de input definido na Task não seja informado, ele será perguntado para o usuário.
- supported-os: Definição de quais sistemas operacionais a Task será compátivel. As opções são:
windows
mac
linux
- requirements-check: Lista de requisitos que serão checados antes da execução da lista de comandos.
- check-command: Comando executado durante a checagem de requisitos.
- info: Mensagem que será exibida caso a checagem deste requisito falhe.
- command: Comando ou lista de comandos que serão executados pela Task. É possível dividir a execução por sistema operacional usando os objetos com o nome do sistema operacional. Como no exemplo a seguir:
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}}"
Exemplo de arquivos task.yaml
A seguir, alguns exemplos de Tasks:
- Task que executa outros scripts que estão na mesma pasta do task.yaml
name: run-script-task
description: Task que executa scripts contidos na pasta da task.
inputs:
- label: Script Name
type: text
name: name
required: true
supported-os:
- windows
- linux
- mac
command:
windows: |
call {{component_path}}/{{inputs.name}}.bat
linux: |
chmod +x {{component_path}}/{{inputs.name}}.sh
{{component_path}}/{{inputs.name}}.sh
mac: |
chmod +x {{component_path}}/{{inputs.name}}.sh
{{component_path}}/{{inputs.name}}.sh
- Existem algumas váriaveis que são definidas durante a execução da Task que podemos usar para pegar o caminho da Task.
- component_path: Caminho da pasta na qual está a Task sendo executada.
- stack_path: Caminho para a pasta da Stack na qual a Task que está sendo executada esta contida.
- Task que executa um código python
name: run-python-code
description: Task que executa código em Python.
inputs:
- label: Number of loops
type: int
name: loops
default: 5
supported-os:
- linux
- mac
requirements-check:
is-python-installed:
check-command: python --version
info: Python is not installed.
command:
linux: |
#!/usr/bin/env python
for i in range({{inputs.loops}}):
print("Hello from Python")
mac: |
#!/usr/bin/env python
for i in range({{inputs.loops}}):
print("Hello from Python")
- O uso de
shebangs
para execução de códigos programáticos só é suportado nos sistemas operacionaisLinux
eMacOs
Exemplo de execução do comando
Leia também
Esta página foi útil?