
On Thu, 2020-04-30 at 15:14 +0100, Daniel P. Berrangé wrote:
+++ b/.gitlab-ci.yml @@ -0,0 +1,171 @@ + +stages: + - prebuild + - containers + - build
Should this stage be called "builds", just like the previous one is called "containers"? I'm also thinking whether it would be interesting to have a two separate "dist_builds" and "git_builds" stages, just like we have a stage for native builds and another one for cross builds in libvirt. All of this is just me thinking out loud. I'm happy enough with the current solution :)
+.build_git_job_template: &build_git_job_definition + stage: build + before_script: + - export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" + - export SCRATCH_DIR="/tmp/scratch" + - export VROOT="$SCRATCH_DIR/vroot" + - export LD_LIBRARY_PATH="$VROOT/lib" + - export PATH="$PATH:$VROOT/bin"
$VROOT/bin should go first, to make sure we use the binaries we just built and not the ones from the distro packags.
+ script: + - pushd "$PWD" + - mkdir -p "$SCRATCH_DIR" + - cd "$SCRATCH_DIR" + - git clone --depth 1 https://gitlab.com/libvirt/libvirt.git src + - mkdir build + - cd build + - ../src/autogen.sh --prefix="$VROOT" --without-libvirtd
I'd just let 'git clone' do its own thing here, especially since for projects like libvirt-dbus that have multiple dependencies when building from source we'll need to differentiate them.
+fedora-30-container: + <<: *container_job_definition + variables: + NAME: fedora-30
As you already mentioned, this should be replaced with fedora-32...
+ubuntu-1604-container: + <<: *container_job_definition + variables: + NAME: ubuntu-1604
... and this with ubuntu-2004.
+centos-8-build-git: + <<: *build_git_job_definition + image: $CI_REGISTRY_IMAGE/ci-centos-8:latest
We could invert the two parts of the suffix, in the interest of having the most relevant piece of information first, and call this centos-8-git-build...
+centos-7-build-dist: + <<: *build_dist_job_definition + image: $CI_REGISTRY_IMAGE/ci-centos-7:latest
and all the other ones *-dist-build. Regarless, you can use the same trick used for container jobs also for build jobs: that is, tweak the templates above so that they look like .build_dist_job_template: &build_dist_job_definition stage: build image: $CI_REGISTRY_IMAGE/ci-$NAME:latest ... .build_git_job_template: &build_git_job_definition stage: build image: $CI_REGISTRY_IMAGE/ci-$NAME:latest ... and then redefine the build jobs as centos-8-build-git: <<: *build_git_job_definition variables: NAME: centos-8 centos-7-build-dist: <<: *build_dist_job_definition variables: NAME: centos-7 and so on. Test pipeline to prove this actually works: https://gitlab.com/abologna/libvirt-python/pipelines/141549490
+++ b/ci/README.rst @@ -0,0 +1,12 @@ +CI job assets +============= + +This directory contains assets used in the automated CI jobs, most +notably the Dockerfiles used to build container images in which the +CI jobs then run. + +The `refresh` script is used to re-create the Dockerfiles
Monospace in reStructuredText looks ``like this``, not `like this`.
using the `lcitool` that is provided by
s/that/command that/ or s/that/script that/
Remove the backticks and this will be a clickable link. Then leave a blank line between this and the next paragraph. -- Andrea Bolognani / Red Hat / Virtualization