eb9ca730da
Long due upgrade, see [1]: In GitLab Runner 13.2 a translation for step_script to build_script was added to the custom executor. In 14.0 the build_script stage will be replaced with step_script. We are using GitLab 17 [2]! This removes the following warning: WARNING: Starting with version 17.0 the 'build_script' stage will be replaced with 'step_script': https://gitlab.com/groups/gitlab-org/-/epics/6112 [1] https://about.gitlab.com/releases/2021/05/22/gitlab-13-12-released/#remove-translation-from-stepscript-to-buildscript-in-custom-executor [2] https://about.gitlab.com/releases/2024/05/16/gitlab-17-0-released/ Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-ID: <20240816213203.18350-1-philmd@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com> |
||
---|---|---|
.. | ||
build.yml | ||
freebsd-13.vars | ||
macos-13.vars | ||
macos-14.vars | ||
README.rst |
Cirrus CI integration ===================== GitLab CI shared runners only provide a docker environment running on Linux. While it is possible to provide private runners for non-Linux platforms this is not something most contributors/maintainers will wish to do. To work around this limitation, we take advantage of `Cirrus CI`_'s free offering: more specifically, we use the `cirrus-run`_ script to trigger Cirrus CI jobs from GitLab CI jobs so that Cirrus CI job output is integrated into the main GitLab CI pipeline dashboard. There is, however, some one-time setup required. If you want FreeBSD and macOS builds to happen when you push to your GitLab repository, you need to * set up a GitHub repository for the project, eg. ``yourusername/qemu``. This repository needs to exist for cirrus-run to work, but it doesn't need to be kept up to date, so you can create it and then forget about it; * enable the `Cirrus CI GitHub app`_ for your GitHub account; * sign up for Cirrus CI. It's enough to log into the website using your GitHub account; * grab an API token from the `Cirrus CI settings`_ page; * it may be necessary to push an empty ``.cirrus.yml`` file to your github fork for Cirrus CI to properly recognize the project. You can check whether Cirrus CI knows about your project by navigating to: ``https://cirrus-ci.com/yourusername/qemu`` * in the *CI/CD / Variables* section of the settings page for your GitLab repository, create two new variables: * ``CIRRUS_GITHUB_REPO``, containing the name of the GitHub repository created earlier, eg. ``yourusername/qemu``; * ``CIRRUS_API_TOKEN``, containing the Cirrus CI API token generated earlier. This variable **must** be marked as *Masked*, because anyone with knowledge of it can impersonate you as far as Cirrus CI is concerned. Neither of these variables should be marked as *Protected*, because in general you'll want to be able to trigger Cirrus CI builds from non-protected branches. Once this one-time setup is complete, you can just keep pushing to your GitLab repository as usual and you'll automatically get the additional CI coverage. .. _Cirrus CI GitHub app: https://github.com/marketplace/cirrus-ci .. _Cirrus CI settings: https://cirrus-ci.com/settings/profile/ .. _Cirrus CI: https://cirrus-ci.com/ .. _cirrus-run: https://github.com/sio/cirrus-run/