mirror of
https://github.com/go-task/task.git
synced 2025-05-13 22:16:31 +02:00
144 lines
3.9 KiB
Plaintext
144 lines
3.9 KiB
Plaintext
---
|
|
slug: /getting-started/
|
|
sidebar_position: 3
|
|
---
|
|
|
|
# Getting Started
|
|
|
|
The following guide will help introduce you to the basics of Task. We'll cover
|
|
how to create a Taskfile, how to write a basic task and how to call it. If you
|
|
haven't installed Task yet, head over to our [installation
|
|
guide][installation].
|
|
|
|
## Creating your first Taskfile
|
|
|
|
Once Task is installed, you can create your first Taskfile by running:
|
|
|
|
```shell
|
|
task --init
|
|
```
|
|
|
|
This will create a file called `Taskfile.yml` in the current directory. If you
|
|
want to create the file in another directory, you can pass an absolute or
|
|
relative path to the directory into the command:
|
|
|
|
```shell
|
|
task --init ./subdirectory
|
|
```
|
|
|
|
Or if you want the Taskfile to have a specific name, you can pass in the name of
|
|
the file:
|
|
|
|
```shell
|
|
task --init Custom.yml
|
|
```
|
|
|
|
This will create a Taskfile that looks something like this:
|
|
|
|
```yaml
|
|
version: '3'
|
|
|
|
vars:
|
|
GREETING: Hello, World!
|
|
|
|
tasks:
|
|
default:
|
|
cmds:
|
|
- echo "{{.GREETING}}"
|
|
silent: true
|
|
```
|
|
|
|
As you can see, all Taskfiles are written in [YAML format][yaml]. The `version`
|
|
attribute specifies the minimum version of Task that can be used to run this
|
|
file. The `vars` attribute is used to define variables that can be used in
|
|
tasks. In this case, we are creating a string variable called `GREETING` with a
|
|
value of `Hello, World!`.
|
|
|
|
Finally, the `tasks` attribute is used to define the tasks that can be run. In
|
|
this case, we have a task called `default` that echoes the value of the
|
|
`GREETING` variable. The `silent` attribute is set to `true`, which means that
|
|
the task metadata will not be printed when the task is run - only the output of
|
|
the commands.
|
|
|
|
## Calling a task
|
|
|
|
To call the task, invoke `task` followed by the name of the task you want to
|
|
run. In this case, the name of the task is `default`, so you should run:
|
|
|
|
```shell
|
|
task default
|
|
```
|
|
|
|
Note that we don't have to specify the name of the Taskfile. Task will
|
|
automatically look for a file called `Taskfile.yml` (or any of Task's [supported
|
|
file names][supported-file-names]) in the current directory. Additionally, tasks
|
|
with the name `default` are special. They can also be run without specifying the
|
|
task name.
|
|
|
|
If you created a Taskfile in a different directory, you can run it by passing
|
|
the absolute or relative path to the directory as an argument using the `--dir`
|
|
flag:
|
|
|
|
```shell
|
|
task --dir ./subdirectory
|
|
```
|
|
|
|
Or if you created a Taskfile with a different name, you can run it by passing
|
|
the name of the Taskfile as an argument using the `--taskfile` flag:
|
|
|
|
```shell
|
|
task --taskfile Custom.yml
|
|
```
|
|
|
|
## Adding a build task
|
|
|
|
Let's create a task to build a program in Go. Start by adding a new task called
|
|
`build` below the existing `default` task. We can then add a `cmds` attribute
|
|
with a single command to build the program.
|
|
|
|
Task uses [mvdan/sh][mvdan/sh], a native Go sh interpreter. So you can write
|
|
sh/bash-like commands - even in environments where `sh` or `bash` are usually
|
|
not available (like Windows). Just remember any executables called must be
|
|
available as a built-in or in the system's `PATH`.
|
|
|
|
When you're done, it should look something like this:
|
|
|
|
```yaml
|
|
version: '3'
|
|
|
|
vars:
|
|
GREETING: Hello, World!
|
|
|
|
tasks:
|
|
default:
|
|
cmds:
|
|
- echo "{{.GREETING}}"
|
|
silent: true
|
|
|
|
build:
|
|
cmds:
|
|
- go build ./cmd/main.go
|
|
```
|
|
|
|
Call the task by running:
|
|
|
|
```shell
|
|
task build
|
|
```
|
|
|
|
That's about it for the basics, but there's _so much_ more that you can do with
|
|
Task. Check out the rest of the documentation to learn more about all the
|
|
features Task has to offer! We recommend taking a look at the [usage
|
|
guide][usage] next. Alternatively, you can check out our reference docs for the
|
|
[Taskfile schema][schema] and [CLI][cli].
|
|
|
|
{/* prettier-ignore-start */}
|
|
[yaml]: https://yaml.org/
|
|
[installation]: /installation/
|
|
[supported-file-names]: /usage/#supported-file-names
|
|
[mvdan/sh]: https://github.com/mvdan/sh
|
|
[usage]: /usage/
|
|
[schema]: /reference/schema/
|
|
[cli]: /reference/cli/
|
|
{/* prettier-ignore-end */}
|