v2.0.0
baur 2.0.0
This release is the direct successor of baur version 0.
Because of issues with go-modules, the major version 1 is skipped.
The configuration files and database schema from baur 0.x versions are
incompatible.
Upgrade instructions from version 0 can be found in the Wiki.
Changes
Tasks
Tasks replace the concept of builds.
Per application multiple tasks can be specified that are run and tracked by baur.
Tasks that do not produce any output are supported. This allows to define for
example tasks that run unit-tests.
Includes
Includes are now referenced in the format PATH#INCLUDE_ID
.
The INCLUDE_ID
is specified in the section of the include definition.
This allows to specify multiple include sections per file.
Include files can contain Task definitions, which can reference input or
output include sections.
Input Resolvers
- Input resolver results are cached per
baur
execution.
GolangSources Resolver
- GolangSources are specified by
queries
instead of by path. The
queries are passed togo list
. It supports the same query syntax then the
official Golang tools. - The new
tests
option in the config section controls if a query includes
testcases in the result, - BuildFlags that are forwarded to the Gosource resolver (
go list
) can be
defined in the config section. - non-vendored dependencies do not resolve to local paths outside of the baur
repository anymore
Files
- The
GitFiles
input section is gone. The Input File section has a
git_tracked_only
option instead. If it is set to true, paths are only
resolved to files that are tracked in the git repository. - The
Input.Files
section has anoptional
setting to specify that paths
are allowed to resolve to 0 files.
Command-Line
New Commands
baur status
lists all tasks in the repository with their status. It
replaces the previousbaur ls apps
command.baur run
replacesbaur build
baur diff
shows the difference of the inputs between 2 tasks or recorded
tasks runs (thanks to @StephenDiligent and @dbrougham).baur upgrade configs
: converts configuration files from baur version 0 to
version 2.baur ls runs
replacesbaur ls builds
Misc
- A new syntax for specifying tasks, supported are:
- a path to an application directory to match all tasks of the application,
- the name of an application, to match all it's tasks,
- a string in the format
APP.TASK
:- to reference a specific task of an app, e.g: the build task of the shop
app:shop.build
- to reference all tasks of an app or tasks across apllications,
APP
andTASK
can be a wildcard:*.build
to run tasks namedbuild
of all applications,shop.*
to run all tasks of an application named shop
- to reference a specific task of an app, e.g: the build task of the shop
- Input Strings can be specified via the
--input-str
and--lookup-input-str
parameters. Input strings are hashed and tracked as inputs of task runs.
(thanks to @StephenDiligent). baur ls runs
got a new query parameter--limit
, to limit the number of
returned results (thanks to @StephenDiligent).baur ls runs
got new query parameter--has-input
to list all builds that
have a specific input (thanks to @StephenDiligent).- new global parameter
--no-color
baur ls apps
only lists the applications with their paths in the
repository. It does not show the status anymore.baur ls inputs
supports to show the inputs of recorded task runsbaur show
list the config files (including includes) in that the application
is definedbaur show
also prints the directory of the application
OS Support
- baur is build and tested on Windows, Windows binaries are provided
(thanks to @StephenDiligent). - Release binaries for Darwin (MacOS)/ARM64 are provided
Misc
- Support for variables in configuration files is replaced with full support for
go templating (thanks to @kostyay).
Go templating syntax can be used in the values of configuration fields.
Further information can be found in the
Wiki. - The
command
of a task is executed directly and not run via thesh
shell. - The
command
in the application config is specified as a string list
instead of a single string. - Multiple RegistryUpload sections can be defined per Output.DockerImage
- Multiple S3Upload and Filecopy sections can be defined per Output.File
- The
S3Upload.dest_file
field is renamed tokey
- Environment variables can be referenced in configs via
{{ env VARNAME }}