Go语言学习: yaml 方式管理 task

GO语言里的 ytl 实现
更新于: 2022-08-01 03:25:33

安装

# install
brew install go-task/tap/go-task
# task --version
Task version: v3.14.0 (h1:/00rpwoB+lo9ztU7MPa9aCDywZvrXaxXNR2BxvyEhwE=)

常用

功能代码
创建一个 Taskfile.yaml
task -i
运行默认 (default) 的任务
task

Taskfile.yaml

  • default: 这个为一个默认的任务
  • 其它任务的执行格式为: task hello
# https://taskfile.dev

version: '3'

vars:
  GREETING: Hello, World!

tasks:
  default:
    cmds:
      - echo "{{.GREETING}}"
      - echo "{{.HOME}}"
      - echo $HOME
    silent: true

多个Taskfile/Taskfile.dist 共存情况

以下是查找顺序:Taskfile.yaml => Taskfile.dist.yaml

推荐的方式是将 Taskfile.yaml 添加到 gitignore中去,将 Taskfile.dist.yaml 放在git中管理

  • Taskfile.yml
  • Taskfile.yaml
  • Taskfile.dist.yml
  • Taskfile.dist.yaml

环境变量

version: '3'

tasks:
  greet:
    cmds:
      - echo $GREETING
    env:
      GREETING: Hey, there!
version: '3'

env:
  GREETING: Hey, there!

tasks:
  greet:
    cmds:
      - echo $GREETING

include 指令

可以在当前的 Taskfile.yaml 里引用其它的 yml 命令

version: '3'

includes:
  docs: ./documentation # will look for ./documentation/Taskfile.yml
  docker: ./DockerTasks.yml

不同的操作系统

version: '3'

includes:
  build: ./Taskfile_{{OS}}.yml

其它关键词

  • version:
  • includes:
  • Configuration ones, like output:, silent:, method: and run:
  • vars:
  • env:, dotenv:
  • tasks:

参考