A versioned catalogue of re-usable and tested Concourse tasks.
Include the following resource in the pipeline where you wish to consume a task:
- name: concourse-tasks
type: git
source:
uri: https://github.com/EngineerBetter/concourse-tasks.git
tag_filter: 0.0.16
Always use a specific tag, and do not depend on the main
branch.
To use a task, ensure that you get: concourse-tasks
earlier in your plan. Remember to perform any input/output mapping from the generic names inside the task (on the left of the colon), to your specific names outside the task (on the right of the colon).
jobs:
name: do-the-thing
plan:
- get: concourse-tasks
# ...
- task: tarball-files
file: concourse-tasks/tar/task.yml
input_mapping: { input: your-directory }
output_mapping: { output: name-you-want }
params:
INCLUDE: file1 file2
TARBALL_NAME: my-tarball
Concourse is trusted to build production software and deploy production infrastructure. Whilst many tasks are seemingly simple, scripting languages like Bash make it very easy for seasoned programmers to make mistakes.
Given:
- the production workloads that Concourse is entrusted with in enterprises, governments and militaries, all tasks should be tested.
- how long infrastructure-deploying pipelines can take to run, it is in the interests of productivity to ensure that tasks don't fail.
- the large number of pipelines that require similar tasks, we should leverage scale by sharing common tasks.
Contributions are very welcome!
- Create your task in a descriptive directory name. No cute aeronautical puns, please.
- Place your task config as a file called
task.yml
in your task's directory - Consider using the smallest image possible for your task.
- When invoking a shell, consider in-lining your script as an argument to the shell executable in your
task.yml
(see example) - Please provide an ironbird test spec in your directory, with a name ending in
_spec.yml
. PRs featuring untested tasks will not be merged.