Files
git.taskfile.build/usage.md
T
Janik von Rotz c73eb98488 docs(website): restructure documentation and move content to dedicated pages
- Split README.md into usage.md and library.md for better organization
- Move library section to its own page and update references
- Rename "Usage" section to "Examples" in README.md
- Update navigation links in base layout to reflect new structure
- Fix typo in function definition in image/README.md
- Add frontmatter to AGENTS.md for proper layout rendering
- Update footer link from GitHub to Codeberg
2025-11-05 11:37:43 +01:00

132 lines
3.0 KiB
Markdown

---
layout: layouts/base.njk
---
# Usage
Running the task file requires a shell alias: `alias task='./task'`
Show the available commands with `task help`.
From the specification the project can be installed with `task install`.
Execute all commands with `task all`.
## Completion
With the output of `task help` the task commands can be completed.
Completion for bash: `/etc/bash_completion.d/task_completions`
```bash
#!/usr/bin/env bash
_task_completions() {
local cur prev commands
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
commands=$(./task help | grep -A999 -e '---' | awk '{print $2}' | sed 's/^[[:space:]]*//' | grep -v '^$' | tr '\n' ' ')
if [[ ${COMP_CWORD} == 1 ]]; then
COMPREPLY=( $(compgen -W "${commands}" -- "${cur}") )
elif [[ ${COMP_CWORD} == 2 ]]; then
COMPREPLY=( $(compgen -f -- "${cur}") )
else
COMPREPLY=()
fi
}
complete -F _task_completions task
complete -F _task_completions t
```
Completion for zsh: `~/.oh-my-zsh/completions/_task`
```bash
#compdef task t
_arguments '1: :->tasks' '*: :_files'
case "$state" in
tasks)
args=$(./task help | grep -A999 -e '---' | awk '{print $2}' | sed 's/^[[:space:]]*//' | grep -v '^$' | tr '\n' ' ')
args="$args help"
_arguments "1:profiles:($args)"
;;
esac
```
The completion also works for task alias `alias t='./task'`.
## Image
See [taskfile.build/image](/image) for details.
## Integration
The task file is intended to be integrated into the shell setup. Whenever an applicatio uses a domain specific language (DSL) ensure that the DSL calls the task file. Most you'll see DSLs to describe build pipelines.
### GitHub Actions
Running task file commands in GitHub Actions is highly recommended. This way you can run the same CI/CD procedures in the GitHub runner as you do on your localhost.
The GitHub Actions config is simple: `.github/workflows/test.yml `
```yml
on:
pull_request:
branches:
- 'main'
push:
branches:
- 'main'
jobs:
task-all:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Install
run: ./task install
- name: Lint
run: ./task lint
```
### Jenkins
Run task file commands in Jenkins: `Jenkinsfile`
```groovy
pipeline {
agent any
stages {
stage('version') {
steps {
script {
currentBuild.description = sh (script: 'git log -1 --pretty=%B', returnStdout: true).trim()
}
sh './task version'
}
}
stage('install') {
steps {
sh './task install'
}
}
stage('lint') {
steps {
sh './task lint'
}
}
}
}%
```