On Mon, 2020-06-08 at 17:41 +0100, Daniel P. Berrangé wrote:
On Mon, Jun 08, 2020 at 05:42:32PM +0200, Andrea Bolognani wrote:
> +.cirrus_build_default_job_template: &cirrus_build_default_job_definition
> + stage: native_build
> + image:
registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
> + script:
> + - |
> + if test -z "$CIRRUS_GITHUB_REPO" || test -z
"$CIRRUS_API_TOKEN"; then
> + echo "WARN: Cirrus CI integration not set up correctly for your
account"
> + echo "WARN: This job will be skipped"
> + echo "WARN: See ci/README.rst for more information"
> + exit 0
> + fi
This will give a misleading impression that the macOS / FreeBSD
job has been run for a user's merge request. Instead we shoudl
do
> + - cirrus-run ci/cirrus/$NAME.yml.j2
only:
variables:
- $CIRRUS_GITHUB_REPO
- $CIRRUS_API_TOKEN
this ensures the job is not even created if the contributor has not
configured things. Thus we can see from the list of jobs whether
the merge request has CI coverage of macOS/FreeBSD, instead of
having to read the job log to spot the warning.
That's a great approach! I wanted to find a way to signal that more
clearly, and I thought I could mark them as orange by exiting with
a special return code, but apparently that's something that GitLab
has not implemented despite being requested multiple times... Your
solution gives us almost the same result with tools that we can
actually use today :)
> +freebsd_11_task:
> + install_script:
> + - pkg install -y
> + augeas
> + autoconf
> + automake
[...]
For the dockerfiles, we're auto-generating using lcitool.
IIUC, we should have sufficient info avialable in lcitol that
we can wrote a command to generate this entire file, including
the build_script commands.
In fact eventually we could try to get to a point where we
auto-generate the .gitlab-ci.yml from lcitool.
I mention this in the commit message. The goal is absolutely to
generate these files using lcitool, I just haven't invested time
into doing that yet because I wanted to make sure the overall
approach was considered acceptable first.
> +macos_1015_task:
> + install_script:
> + - brew install
> + autoconf
> + automake
> + ccache
[...]
Obviously we'd need to define a mapping for macOS in lcitool
for this.
Obviously :)
--
Andrea Bolognani / Red Hat / Virtualization