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@xxxxxxxxxx> > --- > .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