Here are some useful doit commands/features, for more information, the official documentation is here.
This generates completion for bash
or zsh
(to use it with your shell,
see the instructions here).
By default, ./doit.sh list
only shows the "public" tasks.
If you want to see the subtasks as well, you can use the option --all
.
% ./doit.sh list --all images Pull/Build the container images. iso Build the MetalK8s image. lint Run the linting tools. lint:shell Run shell scripts linting. lint:yaml Run YAML linting. […]
Useful if you only want to run a part of a task (e.g. running the lint tool only on the YAML files).
You can also display the internal (a.k.a. "private" or "hidden") tasks with the
-p
(or --private
) options.
And if you want to see all the tasks, you can combine both:
./doit.sh list --all --private
.
You can cleanup the build tree with the ./doit.sh clean
command.
Note that you can have fine-grained cleaning, i.e. cleaning only the result of
a single task, instead of trashing the whole build tree: e.g. if you want to
delete the container images, you can run ./doit.sh clean images
.
You can also execute a dry-run to see what would be deleted by a clean command:
./doit.sh clean -n images
.
Useful to understand how tasks interact with each others (and for
troubleshooting), the info
command display the task's metadata.
Example:
% ./doit.sh info _build_rpm_packages:calico-cni-plugin/srpm _build_rpm_packages:calico-cni-plugin/srpm Build calico-cni-plugin-3.8.2-1.el7.src.rpm status : up-to-date file_dep : - /home/foo/dev/metalk8s/_build/packages/redhat/calico-cni-plugin/SOURCES/calico-ipam-amd64 - /home/foo/dev/metalk8s/_build/packages/redhat/calico-cni-plugin/SOURCES/v3.8.2.tar.gz - /home/foo/dev/metalk8s/packages/redhat/calico-cni-plugin.spec - /home/foo/dev/metalk8s/_build/packages/redhat/calico-cni-plugin/SOURCES/calico-amd64 task_dep : - _package_mkdir_rpm_root - _build_builder:metalk8s-rpm-builder - _build_rpm_packages:calico-cni-plugin/mkdir targets : - /home/foo/dev/metalk8s/_build/packages/redhat/calico-cni-plugin-3.8.2-1.el7.src.rpm
You can use wildcard in task names, which allows you to either:
- execute all the sub-tasks of a specific task:
_build_rpm_packages:calico-cni-plugin/*
will execute all the tasks required to build the package. - execute a specific sub-task for all the tasks:
_build_rpm_packages:*/get_source
will retrieve the source files for all the packages.