11# Supported Tools
22
3- ## make
3+ ## Embedded commands
4+
5+ ### changelog (github)
6+
7+ ` changelog ` command will produce a ` CHANGELOG.md ` file based on Github Releases.
8+ You can define ` CHANGELOG_FILE ` environment variable to make it generate the
9+ file in a different location.
10+
11+ This command is available only when ` gh ` command line utility is installed.
12+
13+ ### containers check
14+
15+ You can use this command to verify if a specific container image has a maximum
16+ size or maximum number of layers. This is useful when you want to prevent
17+ accidental grow of an image your are producing.
18+
19+ ``` bash
20+ $ mk containers check your-image-id-or-name --max-size=200 --max-layers=1
21+ Image has too many layers: 3 > 1
22+ Image size exceeded the max required size (MB): 301 > 200
23+ FAIL: 1
24+ ```
25+
26+ You can also specify the container engine to be used, the default is to use
27+ docker if found or podman if docker is not found.
28+
29+ ## Recognized tools
30+
31+ ### make
432
533If a [ makefile] ( https://www.gnu.org/software/make/manual/make.html ) is found on
634the repository root, the tool will expose all its targets that have a trailing
@@ -10,7 +38,7 @@ the command will not be exposed, as we assume that this is an internal target.
1038A good example of a project using this pattern is
1139[ podman] ( https://github.com/containers/podman ) .
1240
13- ## npm
41+ ### npm
1442
1543If a [ package.json] ( https://docs.npmjs.com/cli/v7/configuring-npm/package-json )
1644file is found, the tool will expose all the scripts defined in the ` scripts ` .
@@ -21,28 +49,28 @@ files, we are unable to provide descriptions for exposed commands. Still, if
2149others will find a good way to do it that gets some adoption, we will be more
2250than happy to add support for loading descriptions too.
2351
24- ## shell
52+ ### shell
2553
2654All shell scripts found inside the repository root and` (scripts|tools|bin)/ `
2755sub-folders will be exposed as commands.
2856
29- ## taskfile
57+ ### taskfile
3058
3159[ Taskfile] ( https://taskfile.dev/#/ ) is a task runner that uses YAML files. It is
3260similar to make, but it is written in Go and it is more flexible.
3361
34- ## tox
62+ ### tox
3563
3664All tox environments will be exposed as commands and their descriptions will
3765also be shown. Internally, the tool will run ` tox -lav ` to get the list of
3866available environments and their descriptions.
3967
40- ## ansible
68+ ### ansible
4169
4270Any playbook found inside the ` playbooks/ ` sub-folder will be exposed as a
4371command.
4472
45- ## git
73+ ### git
4674
4775Inside git repositories, the tool will expose the ` up ` command which can be used
4876to create an upstream pull request.
@@ -51,12 +79,12 @@ If the current git repository is using
5179[ Gerrit] ( https://www.gerritcodereview.com ) , it will run ` git review ` and if the
5280repository is from GitHub, it will run ` gh pr create ` instead.
5381
54- ## pre-commit
82+ ### pre-commit
5583
5684If a [ pre-commit] ( https://pre-commit.com/ ) configuration file is found, the tool
5785will expose the ` lint ` command for running linting.
5886
59- ## py (python packages)
87+ ### py (python packages)
6088
6189If the current repository is a Python package, the tool will expose a set of
6290basic commands:
@@ -65,15 +93,7 @@ basic commands:
6593- ` uninstall ` : Uninstall the current package
6694- ` build ` : Run ` python -m build `
6795
68- ## pytest
96+ ### pytest
6997
7098If a [ pytest] ( https://docs.pytest.org/en/stable/ ) configuration file is found, a
7199` test ` command will be exposed that runs ` pytest ` .
72-
73- ## changelog (github)
74-
75- ` changelog ` command will produce a ` CHANGELOG.md ` file based on Github Releases.
76- You can define ` CHANGELOG_FILE ` environment variable to make it generate the
77- file in a different location.
78-
79- This command is available only when ` gh ` command line utility is installed.
0 commit comments