2018-09-23 20:06:43 +02:00
|
|
|
# Task
|
|
|
|
|
2020-12-27 23:55:55 +02:00
|
|
|
<div align="center">
|
|
|
|
<img id="logo" src="/Logo.png" height="250px" width="250px" />
|
|
|
|
</div>
|
|
|
|
|
2018-10-07 23:34:03 +02:00
|
|
|
Task is a task runner / build tool that aims to be simpler and easier to use
|
|
|
|
than, for example, [GNU Make][make].
|
2018-09-22 23:44:24 +02:00
|
|
|
|
2018-10-07 23:34:03 +02:00
|
|
|
Since it's written in [Go][go], Task is just a single binary and has no other
|
|
|
|
dependencies, which means you don't need to mess with any complicated install
|
|
|
|
setups just to use a build tool.
|
|
|
|
|
2018-10-27 01:06:33 +02:00
|
|
|
Once [installed](installation.md), you just need to describe your build tasks
|
2018-10-07 23:34:03 +02:00
|
|
|
using a simple [YAML][yaml] schema in a file called `Taskfile.yml`:
|
|
|
|
|
|
|
|
```yaml
|
2020-08-17 03:01:49 +02:00
|
|
|
version: '3'
|
2018-10-07 23:34:03 +02:00
|
|
|
|
|
|
|
tasks:
|
|
|
|
hello:
|
|
|
|
cmds:
|
|
|
|
- echo 'Hello World from Task!'
|
|
|
|
silent: true
|
|
|
|
```
|
|
|
|
|
|
|
|
And call it by running `task hello` from you terminal.
|
|
|
|
|
2018-10-27 20:25:39 +02:00
|
|
|
The above example is just the start, you can take a look at the [usage](usage.md)
|
2018-10-07 23:34:03 +02:00
|
|
|
guide to check the full schema documentation and Task features.
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
2018-10-27 01:06:33 +02:00
|
|
|
- [Easy installation](installation.md): just download a single binary, add to
|
2018-12-06 15:21:03 +02:00
|
|
|
$PATH and you're done! Or you can also install using [Homebrew][homebrew],
|
|
|
|
[Snapcraft][snapcraft], or [Scoop][scoop] if you want;
|
2018-10-27 01:06:33 +02:00
|
|
|
- Available on CIs: by adding [this simple command](installation.md#install-script)
|
2018-10-07 23:34:03 +02:00
|
|
|
to install on your CI script and you're done to use Task as part of your CI pipeline;
|
|
|
|
- Truly cross-platform: while most build tools only work well on Linux or macOS,
|
|
|
|
Task also supports Windows thanks to [this awesome shell interpreter for Go][sh];
|
2018-10-27 20:25:39 +02:00
|
|
|
- Great for code generation: you can easily [prevent a task from running](usage.md#prevent-unnecessary-work)
|
2018-10-07 23:34:03 +02:00
|
|
|
if a given set of files haven't changed since last run (based either on its
|
|
|
|
timestamp or content).
|
2018-09-22 23:44:24 +02:00
|
|
|
|
|
|
|
[make]: https://www.gnu.org/software/make/
|
2018-10-07 23:34:03 +02:00
|
|
|
[go]: https://golang.org/
|
|
|
|
[yaml]: http://yaml.org/
|
|
|
|
[homebrew]: https://brew.sh/
|
|
|
|
[snapcraft]: https://snapcraft.io/
|
2018-12-06 15:21:03 +02:00
|
|
|
[scoop]: https://scoop.sh/
|
2018-10-07 23:34:03 +02:00
|
|
|
[sh]: https://mvdan.cc/sh
|