
On Tue, Mar 24, 2020 at 04:24:02PM +0000, Daniel P. Berrangé wrote:
This patch adds x86_64 native CI jobs for all distros that we currently build container images for. This is a superset of the Linux jobs run on current Jenkins and Travis platforms.
The remaining missing platforms are FreeBSD and macOS, neither of which can use the shared runner container based infrastructure.
We may add further native jobs in the future which are not x86_64 based, if we get access to suitable hardware, thus the jobs all have an arch prefix in their name, just like the cross-built jobs do.
To control the total CI execution time, we split the native jobs into two distinct stages. A representative set of distros are used as the primary native build sanity test, run for everyone regardless of whether pre/post merge, and on any branch. The remaining distros are set to run after the cross builds, and only execute for master branch, and thus will only run for post-merge. When we switch to using a merge request workflow, these extra jobs can be triggered when the merge request is opened.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- .gitlab-ci.yml | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 329374a34f..58abcbe1f3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,34 @@ stages: - prebuild + - native_build - cross_build + - native_build_extra + + +# Common templates + +# Native jobs that run every time, pre/post merge and on any branch +.native_build_job_template: &native_build_job_definition + stage: native_build + script: + - mkdir build + - cd build + - ../autogen.sh $CONFIGURE_OPTS || (cat config.log && exit 1) + - make -j $(getconf _NPROCESSORS_ONLN) syntax-check + - make -j $(getconf _NPROCESSORS_ONLN) distcheck + +# Native jobs that will only run post merge on master branch +# Switch to running against merge requests later +.native_build_extra_job_template: &native_build_extra_job_definition + stage: native_build_extra + script: + - mkdir build + - cd build + - ../autogen.sh $CONFIGURE_OPTS || (cat config.log && exit 1) + - $MAKE -j $(getconf _NPROCESSORS_ONLN) check + only: + refs: + - master
only: - master would be enough, or is there a special need for the "refs" keyword? Erik