mirror of
https://github.com/go-task/task.git
synced 2024-12-14 10:52:43 +02:00
321 lines
7.4 KiB
Plaintext
321 lines
7.4 KiB
Plaintext
---
|
|
slug: /installation/
|
|
sidebar_position: 2
|
|
---
|
|
|
|
# Installation
|
|
|
|
Task offers many installation methods. Check out the available methods below.
|
|
|
|
## Package Managers
|
|
|
|
### Homebrew
|
|
|
|
If you're on macOS or Linux and have [Homebrew][homebrew] installed, getting
|
|
Task is as simple as running:
|
|
|
|
```shell
|
|
brew install go-task/tap/go-task
|
|
```
|
|
|
|
The above Formula is
|
|
[maintained by ourselves](https://github.com/go-task/homebrew-tap/blob/main/Formula/go-task.rb).
|
|
|
|
Recently, Task was also made available
|
|
[on the official Homebrew repository](https://formulae.brew.sh/formula/go-task),
|
|
so you also have that option if you prefer:
|
|
|
|
```shell
|
|
brew install go-task
|
|
```
|
|
|
|
### pkgx
|
|
|
|
If you're on macOS or Linux and have [pkgx][pkgx] installed, getting Task is as
|
|
simple as running:
|
|
|
|
```shell
|
|
pkgx task
|
|
```
|
|
|
|
or, if you have pkgx integration enabled:
|
|
|
|
```shell
|
|
task
|
|
```
|
|
|
|
This installation method is community owned. After a new release of Task, they
|
|
are automatically released by pkgx in a minimum of time.
|
|
|
|
### Snap
|
|
|
|
Task is available in [Snapcraft][snapcraft], but keep in mind that your Linux
|
|
distribution should allow classic confinement for Snaps to Task work right:
|
|
|
|
```shell
|
|
sudo snap install task --classic
|
|
```
|
|
|
|
### Chocolatey
|
|
|
|
If you're on Windows and have [Chocolatey][choco] installed, getting Task is as
|
|
simple as running:
|
|
|
|
```shell
|
|
choco install go-task
|
|
```
|
|
|
|
This installation method is community owned.
|
|
|
|
### Scoop
|
|
|
|
If you're on Windows and have [Scoop][scoop] installed, getting Task is as
|
|
simple as running:
|
|
|
|
```shell
|
|
scoop install task
|
|
```
|
|
|
|
This installation method is community owned. After a new release of Task, it may
|
|
take some time until it's available on Scoop.
|
|
|
|
### AUR
|
|
|
|
If you're on Arch Linux you can install Task from
|
|
[AUR](https://aur.archlinux.org/packages/go-task-bin) using your favorite
|
|
package manager such as `yay`, `pacaur` or `yaourt`:
|
|
|
|
```shell
|
|
yay -S go-task-bin
|
|
```
|
|
|
|
Alternatively, there's
|
|
[this package](https://aur.archlinux.org/packages/go-task) which installs from
|
|
the source code instead of downloading the binary from the
|
|
[releases page](https://github.com/go-task/task/releases):
|
|
|
|
```shell
|
|
yay -S go-task
|
|
```
|
|
|
|
This installation method is community owned.
|
|
|
|
### Fedora
|
|
|
|
If you're on Fedora Linux you can install Task from the official
|
|
[Fedora](https://packages.fedoraproject.org/pkgs/golang-github-task/go-task/)
|
|
repository using `dnf`:
|
|
|
|
```shell
|
|
sudo dnf install go-task
|
|
```
|
|
|
|
This installation method is community owned. After a new release of Task, it may
|
|
take some time until it's available in
|
|
[Fedora](https://packages.fedoraproject.org/pkgs/golang-github-task/go-task/).
|
|
|
|
### Nix
|
|
|
|
If you're on NixOS or have Nix installed you can install Task from
|
|
[nixpkgs](https://github.com/NixOS/nixpkgs):
|
|
|
|
```shell
|
|
nix-env -iA nixpkgs.go-task
|
|
```
|
|
|
|
This installation method is community owned. After a new release of Task, it may
|
|
take some time until it's available in
|
|
[nixpkgs](https://github.com/NixOS/nixpkgs).
|
|
|
|
### npm
|
|
|
|
You can also use Node and npm to install Task by installing
|
|
[this package](https://www.npmjs.com/package/@go-task/cli).
|
|
|
|
```shell
|
|
npm install -g @go-task/cli
|
|
```
|
|
|
|
### Winget
|
|
|
|
If you are using Windows and installed the
|
|
[winget](https://github.com/microsoft/winget-cli) package management tool, you
|
|
can install Task from [winget-pkgs](https://github.com/microsoft/winget-pkgs).
|
|
|
|
```shell
|
|
winget install Task.Task
|
|
```
|
|
|
|
### Pacstall
|
|
If you are using Debian or Ubuntu, and have [Pacstall](https://pacstall.dev/) installed, you can install Task by running:
|
|
|
|
```shell
|
|
pacstall -I go-task-deb
|
|
```
|
|
|
|
This installation method is community owned. After a new release of Task, it may take some time until it's available in [Pacstall](https://pacstall.dev/packages/go-task-deb).
|
|
|
|
## Get The Binary
|
|
|
|
### Binary
|
|
|
|
You can download the binary from the [releases page on GitHub][releases] and add
|
|
to your `$PATH`.
|
|
|
|
DEB and RPM packages are also available.
|
|
|
|
The `task_checksums.txt` file contains the SHA-256 checksum for each file.
|
|
|
|
### Install Script
|
|
|
|
We also have an [install script][installscript] which is very useful in
|
|
scenarios like CI. Many thanks to [GoDownloader][godownloader] for enabling the
|
|
easy generation of this script.
|
|
|
|
By default, it installs on the `./bin` directory relative to the working
|
|
directory:
|
|
|
|
```shell
|
|
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d
|
|
```
|
|
|
|
It is possible to override the installation directory with the `-b` parameter.
|
|
On Linux, common choices are `~/.local/bin` and `~/bin` to install for the
|
|
current user or `/usr/local/bin` to install for all users:
|
|
|
|
```shell
|
|
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b ~/.local/bin
|
|
```
|
|
|
|
:::caution
|
|
|
|
On macOS and Windows, `~/.local/bin` and `~/bin` are not added to `$PATH` by
|
|
default.
|
|
|
|
:::
|
|
|
|
By default, it installs the latest version available.
|
|
You can also specify a tag (available in [releases](https://github.com/go-task/task/releases))
|
|
to install a specific version:
|
|
|
|
```shell
|
|
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d v3.36.0
|
|
```
|
|
|
|
### GitHub Actions
|
|
|
|
If you want to install Task in GitHub Actions you can try using
|
|
[this action](https://github.com/arduino/setup-task) by the Arduino team:
|
|
|
|
```yaml
|
|
- name: Install Task
|
|
uses: arduino/setup-task@v2
|
|
with:
|
|
version: 3.x
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
```
|
|
|
|
This installation method is community owned.
|
|
|
|
## Build From Source
|
|
|
|
### Go Modules
|
|
|
|
Ensure that you have a supported version of [Go][go] properly installed and
|
|
setup. You can find the minimum required version of Go in the
|
|
[go.mod](https://github.com/go-task/task/blob/main/go.mod#L3) file.
|
|
|
|
You can then install the latest release globally by running:
|
|
|
|
```shell
|
|
go install github.com/go-task/task/v3/cmd/task@latest
|
|
```
|
|
|
|
Or you can install into another directory:
|
|
|
|
```shell
|
|
env GOBIN=/bin go install github.com/go-task/task/v3/cmd/task@latest
|
|
```
|
|
|
|
:::tip
|
|
|
|
For CI environments we recommend using the [install script](#install-script)
|
|
instead, which is faster and more stable, since it'll just download the latest
|
|
released binary.
|
|
|
|
:::
|
|
|
|
## Setup completions
|
|
|
|
Download the autocompletion file corresponding to your shell.
|
|
|
|
[All completions are available on the Task repository](https://github.com/go-task/task/tree/main/completion).
|
|
|
|
### Bash
|
|
|
|
First, ensure that you installed bash-completion using your package manager.
|
|
|
|
Make the completion file executable:
|
|
|
|
```shell
|
|
chmod +x path/to/task.bash
|
|
```
|
|
|
|
After, add this to your `~/.bash_profile`:
|
|
|
|
```shell
|
|
source path/to/task.bash
|
|
```
|
|
|
|
### ZSH
|
|
|
|
Put the `_task` file somewhere in your `$FPATH`:
|
|
|
|
```shell
|
|
mv path/to/_task /usr/local/share/zsh/site-functions/_task
|
|
```
|
|
|
|
Ensure that the following is present in your `~/.zshrc`:
|
|
|
|
```shell
|
|
autoload -U compinit
|
|
compinit -i
|
|
```
|
|
|
|
ZSH version 5.7 or later is recommended.
|
|
|
|
### Fish
|
|
|
|
Move the `task.fish` completion script:
|
|
|
|
```shell
|
|
mv path/to/task.fish ~/.config/fish/completions/task.fish
|
|
```
|
|
|
|
### PowerShell
|
|
|
|
Open your profile script with:
|
|
|
|
```powershell
|
|
mkdir -Path (Split-Path -Parent $profile) -ErrorAction SilentlyContinue
|
|
notepad $profile
|
|
```
|
|
|
|
Add the line and save the file:
|
|
|
|
```shell
|
|
Invoke-Expression -Command path/to/task.ps1
|
|
```
|
|
|
|
{/* prettier-ignore-start */}
|
|
[go]: https://golang.org/
|
|
[snapcraft]: https://snapcraft.io/task
|
|
[homebrew]: https://brew.sh/
|
|
[installscript]: https://github.com/go-task/task/blob/main/install-task.sh
|
|
[releases]: https://github.com/go-task/task/releases
|
|
[godownloader]: https://github.com/goreleaser/godownloader
|
|
[choco]: https://chocolatey.org/
|
|
[scoop]: https://scoop.sh/
|
|
[pkgx]: https://pkgx.sh/
|
|
{/* prettier-ignore-end */}
|