On 11/4/20 11:45 PM, Philippe Mathieu-Daudé wrote:
> Hi,
>
> 2 months ago GitLab added time limit to their free CI offer [1].
> This series provide developers with the possibility to not run
> all jobs. By default all jobs are started, but we can disable
> a subset of them.
>
> I think this should be the other way around (enable features one
> wants to test, with a default to the "all" keyword), but I didn't
> want to disrupt the current workflow.
I was a bit too focused on getting the YAML right to not realize
it is simpler to do:
QEMU_JOBS=all # default, overwritable
QEMU_JOBS=system,fuzz # only build those jobs
# can be set in fork UI config (see [2])
# can be set with git-push option (see below)
> I'm not sure supporting both ("SKIP_BUILD=3Dall INCLUDE_BUILD=3Dsystem")
> options is easy to implement, or to maintain (unlikely).
>
> In the next iteration I'll add the possibility to use a project-
> wide environment variable [2] to set the default set of enabled /
> disabled features a fork is interested in. User will still be
> able to overload using git-push on the command line. A friendly
> way to use this feature is with git aliases [3]:
>
> $ git config alias.pushci_system \
> 'push -o ci.variable=3D"SKIP_BUILD=3Duser"'
> $ git config alias.pushci_debian \
> 'push -o ci.variable=3D"SKIP_BUILD=3Dcentos,fedora,ubuntu"'
>
> Then you can run the jobs based on Debian images (only) using:
>
> $ git pushci_debian gitlab_repo my_branch_for_debian
>
> Or run all system-mode emulation jobs only using:
>
> $ git pushci_system my_gitlab_repo branch_with_system_feature
>
> Comments welcomed!
>
> Regards,
>
> Phil.
>
> [1] https://about.gitlab.com/releases/2020/09/01/ci-minutes-update-free-users/
> [2] https://docs.gitlab.com/ee/ci/variables/README.html#create-a-custom-varia=
> ble-in-the-ui
> [3] https://docs.gitlab.com/ee/user/project/push_options.html#useful-git-alia=
> ses
>
> Philippe Mathieu-Daud=C3=A9 (9):
> gitlab-ci: Replace YAML anchors by extends (cross_system_build_job)
> gitlab-ci: Replace YAML anchors by extends (native_build_job)
> gitlab-ci: Replace YAML anchors by extends (native_test_job)
> gitlab-ci: Replace YAML anchors by extends (acceptance_test_job)
> gitlab-ci: Rename acceptance_test_job -> integration_test_job
> gitlab-ci: Extract common job definition as 'cross_common_job'
> gitlab-ci: Extract common job definition as 'native_common_job'
> gitlab-ci: Add rules to skip building cross-jobs
> gitlab-ci: Add rules to skip building/testing native jobs
>
> .gitlab-ci.d/crossbuilds.yml | 57 +++++++++++--------
> .gitlab-ci.yml | 104 +++++++++++++++++++++--------------
> 2 files changed, 98 insertions(+), 63 deletions(-)
>
> --=20
> 2.26.2
>