mirror of
https://github.com/go-task/task.git
synced 2025-12-26 00:31:38 +02:00
109 lines
2.3 KiB
YAML
109 lines
2.3 KiB
YAML
version: '3'
|
|
|
|
tasks:
|
|
# Simple text input prompt
|
|
greet:
|
|
desc: Greet someone by name
|
|
requires:
|
|
vars:
|
|
- NAME
|
|
cmds:
|
|
- echo "Hello, {{.NAME}}!"
|
|
|
|
# Enum selection (dropdown menu)
|
|
deploy:
|
|
desc: Deploy to an environment
|
|
requires:
|
|
vars:
|
|
- name: ENVIRONMENT
|
|
enum: [dev, staging, prod]
|
|
cmds:
|
|
- echo "Deploying to {{.ENVIRONMENT}}..."
|
|
|
|
# Multiple variables at once
|
|
release:
|
|
desc: Create a release with version and environment
|
|
requires:
|
|
vars:
|
|
- VERSION
|
|
- name: ENVIRONMENT
|
|
enum: [dev, staging, prod]
|
|
cmds:
|
|
- echo "Releasing {{.VERSION}} to {{.ENVIRONMENT}}"
|
|
|
|
# Nested dependencies - all prompts happen upfront
|
|
full-deploy:
|
|
desc: Full deployment pipeline with nested deps
|
|
deps:
|
|
- task: build
|
|
- task: test
|
|
cmds:
|
|
- task: deploy
|
|
|
|
build:
|
|
requires:
|
|
vars:
|
|
- name: BUILD_MODE
|
|
enum: [debug, release]
|
|
cmds:
|
|
- echo "Building in {{.BUILD_MODE}} mode..."
|
|
|
|
test:
|
|
requires:
|
|
vars:
|
|
- name: TEST_SUITE
|
|
enum: [unit, integration, e2e, all]
|
|
cmds:
|
|
- echo "Running {{.TEST_SUITE}} tests..."
|
|
|
|
# Variable already set - no prompt shown
|
|
greet-world:
|
|
desc: Greet the world (no prompt needed)
|
|
vars:
|
|
NAME: World
|
|
requires:
|
|
vars:
|
|
- NAME
|
|
cmds:
|
|
- echo "Hello, {{.NAME}}!"
|
|
|
|
# Complex scenario with multiple levels
|
|
pipeline:
|
|
desc: Run the full CI/CD pipeline
|
|
cmds:
|
|
- task: setup
|
|
- task: build
|
|
- task: test
|
|
- task: deploy
|
|
|
|
setup:
|
|
requires:
|
|
vars:
|
|
- PROJECT_NAME
|
|
cmds:
|
|
- echo "Setting up project {{.PROJECT_NAME}}..."
|
|
|
|
# Docker example with multiple selections
|
|
docker-build:
|
|
desc: Build a Docker image
|
|
requires:
|
|
vars:
|
|
- IMAGE_NAME
|
|
- IMAGE_TAG
|
|
- name: PLATFORM
|
|
enum: [linux/amd64, linux/arm64, linux/arm/v7]
|
|
cmds:
|
|
- echo "Building {{.IMAGE_NAME}}:{{.IMAGE_TAG}} for {{.PLATFORM}}"
|
|
|
|
# Database migration example
|
|
db-migrate:
|
|
desc: Run database migrations
|
|
requires:
|
|
vars:
|
|
- name: DIRECTION
|
|
enum: [up, down]
|
|
- name: DATABASE
|
|
enum: [postgres, mysql, sqlite]
|
|
cmds:
|
|
- echo "Running {{.DIRECTION}} migrations on {{.DATABASE}}"
|