On 2/23/21 4:56 PM, Daniel P. Berrangé wrote: > On Tue, Feb 23, 2021 at 04:17:23PM +0100, Philippe Mathieu-Daudé wrote: >> On 2/19/21 10:58 PM, Cleber Rosa wrote: >>> The QEMU project has two machines (aarch64 and s390x) that can be used >>> for jobs that do build and run tests. This introduces those jobs, >>> which are a mapping of custom scripts used for the same purpose. >>> >>> Signed-off-by: Cleber Rosa <cr...@redhat.com> >>> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> >>> --- >>> .gitlab-ci.d/custom-runners.yml | 204 ++++++++++++++++++++++++++++++++ >>> 1 file changed, 204 insertions(+) >>> >>> diff --git a/.gitlab-ci.d/custom-runners.yml >>> b/.gitlab-ci.d/custom-runners.yml >>> index 3004da2bda..a9166c82a2 100644 >>> --- a/.gitlab-ci.d/custom-runners.yml >>> +++ b/.gitlab-ci.d/custom-runners.yml >>> @@ -12,3 +12,207 @@ >>> # strategy. >>> variables: >>> GIT_SUBMODULE_STRATEGY: recursive >>> + >>> +# All ubuntu-18.04 jobs should run successfully in an environment >>> +# setup by the scripts/ci/setup/build-environment.yml task >>> +# "Install basic packages to build QEMU on Ubuntu 18.04/20.04" >>> +ubuntu-18.04-s390x-all-linux-static: >>> + allow_failure: true >>> + needs: [] >>> + stage: build >>> + tags: >>> + - ubuntu_18.04 >>> + - s390x >> >> Where is this tag list filled upon registration? >> >>> + rules: >>> + - if: '$CI_COMMIT_BRANCH =~ /^staging/' >>> + script: >>> + # --disable-libssh is needed because of >>> https://bugs.launchpad.net/qemu/+bug/1838763 >>> + # --disable-glusterfs is needed because there's no static version of >>> those libs in distro supplied packages >>> + - mkdir build >>> + - cd build >>> + - ../configure --enable-debug --static --disable-system >>> --disable-glusterfs --disable-libssh >>> + - make --output-sync -j`nproc` >>> + - make --output-sync -j`nproc` check V=1 >>> + - make --output-sync -j`nproc` check-tcg V=1 >> >> Also this break the rest of the tests... >> >> The first containers job (amd64-alpine-container) got >> added to the custom runner and failed (because docker-dind >> isn't there?): > > Urgh, well that's a big problem. We certainly don't want *anything* being > placed on the custom runners without explicit opt-in, otherwise jobs run > in the main repo have a different environment from when users run on their > personal forks. > > IOW, we need anti-affinity against our custom runners really. > >> $ export TAG="$CI_REGISTRY_IMAGE/qemu/$NAME:latest" >> $ export COMMON_TAG="$CI_REGISTRY/qemu-project/qemu/$NAME:latest" >> $ apk add python3 >> bash: line 110: apk: command not found >> Running after_script 00:01 >> Running after script... >> $ docker logout >> Removing login credentials for https://index.docker.io/v1/ >> ERROR: Job failed: exit status 1 >> >> Do we need to restrict the other jobs to the Gitlab public >> (x86) runners? Maybe as: >> >> diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml >> @@ -1,6 +1,6 @@ >> .container_job_template: &container_job_definition >> + tags: >> + - gitlab-org-docker > > Is that a real tag that exists on gitlab's shared runners, or something > you just invented ?
This is not standardized yet: https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/5420 I checked the available runners, some have 'docker' while other have 'gitlab-org-docker'. There are more 'gitlab-org-docker' than 'docker' runners. The tag selection is not exclusive, this is a "all or nothing" selection, so for my testing I choose 'gitlab-org-docker' which is the most available. > >> image: docker:stable >> stage: containers >> services: >> >> Daniel, you didn't hit this problem on the previous version >> of this series? > > I didn't try actually executing previous postings of this series. > > > Regards, > Daniel >