- Fix compiler error in orchestrator (thanks @greboid)
- Fixed issue resolving dependencies if functions were passed non-string arguments, or returned ints.
- Add
{{map}}
and{{arr}}
utility template functions. - Fix postgres sources not working.
- Refactor templating to use the latest library instead of Contempt knowing how to check the latest version of everything
- Added generic
{{postgres_url <version>}}
and{{postgres_checksum <version>}}
functions. The older version specific functions are deprecated, but will not be removed in the near future. - Support for including other templates. The option "includes" specifies a
directory containing templates (default:
_includes
) which can then be called using Go's standard{{template "name.gotpl"}}
convention.
- Add support for retrieving releases of postgres 16/17 (thanks @greboid)
- If a scanner error occurs while reading the Alpine APK index, it is now propagated up instead of ignored
- Fix
{{alpine_packages}}
failing for Alpine v3.20 due to extremely long lines in the package index
- Add support for setting the alpine mirror via the
--alpine-mirror
flag, and change default to a working mirror. - Dependency updates
- Revert
--identity-label=false
change as it's not supported by the version of Buildah currently deployed on GitHub Actions.
- Add logging for commands that are executed on the host, and automatically
query the version of buildah and git when running with
--commit
or--build
- Further fix for randomly choosing between multiple tags with the same semver.
- Add
increment_int
template function (thanks @Greboid). - Pass
--identity-label=false
to Buildah to make builds more reproducible (thanks @Greboid).
- Update gitrefs dependency, which fixes issue where contempt will randomly
choose between tags if they're all the same semver (e.g.
v1.2.3
and1.2.3
)
- Add orchestrator binary, for generating configs based on the dependencies between projects. This can be used to (for example) generate a GitHub Actions workflow file that contains a separate job for each project, with the dependencies properly expressed between them. A future version of contempt will better support this single-project-at-a-time usecase.
- Ignore
~x.x
version selectors in apk dependencies (thanks @greboid)
- Added
{{postgres15_url}}
and{{postgres15_checksum}}
template functions
- Fixed issue where all projects are ignored if the path is given as
.
(like in the examples in the README...)
- The
--project
flag can now contain multiple projects separated by commas. - No longer recurses into directories which start with a
.
(e.g..git
) when finding projects. - Now properly reports errors when finding projects, instead of panicing.
- Added
regex_url_content
template function (thanks @Greboid)
- Fix dependency resolution when using fully-qualified names in the
image
template function.
- When multiple materials change the commit message is now summarised as "N changes", the details are spread over multiple lines, and sorted alphabetically.
- The
image
template function now accepts fully-qualified image names, and will not pre-pend the default registry. - Added
git_tag
andprefixed_git_tag
template functions. - Fixed
-push-retries
flag including the original push attempt in the count (i.e., a value of2
would retry once; a value of0
would fail without trying.)
prefixed_github_tag
no longer includes the stripped prefix in the bill of materials.
- Added
-push-retries
flag to specify how many times a failed push should be retried. Defaults to 2.
- Added option (enabled by default) to print workflow commands for GitHub Actions to group log output.
- Skip 'conflicts with' dependencies when resolving Alpine packages (thanks @Greboid)
- Make the project build order deterministic.
- LatestGitHubTag now uses gitrefs to get the latest tag instead of the GitHub API.
- Fix "Generated from" header when running with absolute paths
- Fix infinite loop if running with paths other than ".", or if projects are nested multiple directories deep.
- Explicitly error if dependencies can't be resolved.
- Improved error message if GitHub tags couldn't be resolved.
- Fixed image digests being truncated to "sha256:" and a single character in commit messages
- Increased size of versions shown in commit messages from 8 to 12
- Fixed commit messages showing old/new versions the wrong way around
- Flags can be specified as env vars
- Initial version