Message ID | 20201104224558.3384595-1-philmd@redhat.com |
---|---|
Headers | show |
Series | gitlab-ci: Allow forks to skip some build jobs | expand |
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 >