7.4 KiB
slug, sidebar_position
| slug | sidebar_position |
|---|---|
| /taskfile-versions/ | 14 |
Версии Taskfile
Синтаксис Taskfile и функции со временем изменяются. Этот документ объясняет, что изменилось в каждой версии и как обновить свой Taskfile.
Что обозначает версия Taskfile
Версия Taskfile соответствует версии Task. Например: изменение на Taskfile версии 2 означает, что Task v2.0.0 должна быть выпущена для ее поддержки.
version: ключ Taskfile принимает semVer строку. Пример: 2, 2.0 или 2.0.0. Если вы решите использовать Task версии 2.0, то у вас не будет доступа к функциям версии 2.1, но если вы решите использовать версию 2, то любые функции версий 2.x.x будут доступны, но не 3.0.0+.
Version 3 
Основные изменения, сделанные в v3:
- Output задачи теперь цветной
- Добавлена поддержка
.envфайлов - Добавлен параметр
label:. Появилась возможность переопределить имя задачи в логах - Глобальный параметр
method:был добавлен для установки метода по умолчанию, а задача по умолчанию изменена наchecksum - Добавлены 2 магические переменные, используемые в функции
status:-CHECKSUMиTIMESTAMP, которые содержат, контрольную сумму md5 и наибольшую отметку времени изменения файлов, перечисленных вsources: - Кроме того, переменная
TASKвсегда доступна по имени текущей задачи - Переменные CLI всегда считаются глобальными переменными
- Добавлена опция
dir:вincludesдля того, чтобы выбрать, в каком каталоге Taskfile будет запущен:
includes:
docs:
taskfile: ./docs
dir: ./docs
- Реализован короткий синтаксис задачи. Все синтаксисы ниже эквивалентны:
version: '3'
tasks:
print:
cmds:
- echo "Hello, World!"
version: '3'
tasks:
print:
- echo "Hello, World!"
version: '3'
tasks:
print: echo "Hello, World!"
- Был произведён большой рефакторинг обработки переменных. Теперь всё стало более прозрачно. The
expansions:setting was removed as it became unnecessary. Это порядок, в котором Task будет обрабатывать переменные, каждый уровень может видеть переменные, объявленные на предыдущем и переопределять их.- Переменные окружения
- Глобальные + CLI переменные
- Вызов переменных
- Переменные Task
Версия 2.6
:::caution
v2 schema support is deprecated and will be removed in a future release.
:::
Версия 2.6 поставляется с preconditions опцией в задачах.
version: '2'
tasks:
upload_environment:
preconditions:
- test -f .env
cmds:
- aws s3 cp .env s3://myenvironment
Пожалуйста, проверьте документацию
Версия 2.2
:::caution
v2 schema support is deprecated and will be removed in a future release.
:::
В Версии 2.2 появилась новая глобальная опция includes, которая позволяет импортировать другие Taskfile'ы:
version: '2'
includes:
docs: ./documentation # will look for ./documentation/Taskfile.yml
docker: ./DockerTasks.yml
Версия 2.1
:::caution
v2 schema support is deprecated and will be removed in a future release.
:::
В версии 2.1 появилась глобальная опция output, которая позволяет иметь больше контроля над тем, как вывод команд печатается на консоли (см. документацию):
version: '2'
output: prefixed
tasks:
server:
cmds:
- go run main.go
prefix: server
Начиная с этой версии можно игнорировать ошибки команды или задачи (смотрите документацию здесь):
version: '2'
tasks:
example-1:
cmds:
- cmd: exit 1
ignore_error: true
- echo "This will be print"
example-2:
cmds:
- exit 1
- echo "This will be print"
ignore_error: true
Версия 2.0
:::caution
v2 schema support is deprecated and will be removed in a future release.
:::
В версии 2 был добавлен ключ version: . Он позволяет выпускать обновления сохраняя обратную совместимость. Пример использования:
version: '2'
tasks:
echo:
cmds:
- echo "Hello, World!"
Версия 2 позволяет создавать глобальные переменные непосредственно в Taskfile, если вы не хотите создавать Taskvars.yml:
version: '2'
vars:
GREETING: Hello, World!
tasks:
greet:
cmds:
- echo "{{.GREETING}}"
Порядок приоритетов переменных также отличается:
- Переменные Task
- Call variables
- Переменные Taskfile
- Переменные
Taskvars.yml - Environment variables
Добавлена новая глобальная опция для настройки количества расширений переменных (по умолчанию 2):
version: '2'
expansions: 3
vars:
FOO: foo
BAR: bar
BAZ: baz
FOOBAR: '{{.FOO}}{{.BAR}}'
FOOBARBAZ: '{{.FOOBAR}}{{.BAZ}}'
tasks:
default:
cmds:
- echo "{{.FOOBARBAZ}}"
Версия 1
:::caution
v1 schema support was removed in Task >= v3.0.0.
:::
В первой версии Taskfile поле version: не доступно, потому что задачи были в корне документа YAML. Пример:
echo:
cmds:
- echo "Hello, World!"
Порядок приоритетов переменных также отличается:
- Call variables
- Переменные среды
- Переменные Task
- Переменные
Taskvars.yml