Pular para o conteúdo principal
Version: v4.5.0

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âmetroDescrição
NAMEDefine o nome da task em sua Stack.
--descriptionDefine uma descrição para sua task.

Exemplo

Confira o exemplo abaixo de como criar uma Task:

  1. Crie uma Stack localmente, execute o comando:
stk-legacy create stack <nome-da-sua-stack>
  1. Entre no diretório da Stack que você criou:
cd <nome-da-sua-stack>
  1. Dentro do diretório da Stack, crie a sua Task:
stk-legacy create task <nome-da-sua-task>
  1. Descreva o que sua Task faz:
? Description: <texto-descrição-task>
  1. Sua Task foi criada:
- Task <nome-da-sua-task> successfully created!
  1. O arquivo task.yaml foi criado na pasta com o nome da sua Task dentro da pasta tasks 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:

  1. 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.
  1. 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 operacionais Linux e MacOs

Exemplo de execução do comando

Leia também

Esta página foi útil?