1.container_job_template: &container_job_definition 2 image: docker:stable 3 stage: containers 4 services: 5 - docker:dind 6 before_script: 7 - export TAG="$CI_REGISTRY_IMAGE/qemu/$NAME:latest" 8 - export COMMON_TAG="$CI_REGISTRY/qemu-project/qemu/$NAME:latest" 9 - apk add python3 10 - docker info 11 - docker login registry.gitlab.com -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" 12 script: 13 - echo "TAG:$TAG" 14 - echo "COMMON_TAG:$COMMON_TAG" 15 - docker pull "$TAG" || docker pull "$COMMON_TAG" || true 16 - ./tests/docker/docker.py --engine docker build 17 -t "qemu/$NAME" -f "tests/docker/dockerfiles/$NAME.docker" 18 -r $CI_REGISTRY_IMAGE 19 - docker tag "qemu/$NAME" "$TAG" 20 - docker push "$TAG" 21 after_script: 22 - docker logout 23 rules: 24 - changes: 25 - .gitlab-ci.d/containers.yml 26 - tests/docker/* 27 - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' 28 - if: '$CI_COMMIT_REF_NAME == "testing/next"' 29 30amd64-centos7-container: 31 <<: *container_job_definition 32 variables: 33 NAME: centos7 34 35amd64-centos8-container: 36 <<: *container_job_definition 37 variables: 38 NAME: centos8 39 40amd64-debian10-container: 41 <<: *container_job_definition 42 variables: 43 NAME: debian10 44 45amd64-debian11-container: 46 <<: *container_job_definition 47 variables: 48 NAME: debian11 49 50amd64-debian9-container: 51 <<: *container_job_definition 52 variables: 53 NAME: debian9 54 55amd64-debian9-mxe-container: 56 <<: *container_job_definition 57 stage: containers-layer2 58 needs: ['amd64-debian9-container'] 59 variables: 60 NAME: debian9-mxe 61 62alpha-debian-cross-container: 63 <<: *container_job_definition 64 stage: containers-layer2 65 needs: ['amd64-debian10-container'] 66 variables: 67 NAME: debian-alpha-cross 68 69amd64-debian-cross-container: 70 <<: *container_job_definition 71 stage: containers-layer2 72 needs: ['amd64-debian10-container'] 73 variables: 74 NAME: debian-amd64-cross 75 76amd64-debian-user-cross-container: 77 <<: *container_job_definition 78 stage: containers-layer2 79 needs: ['amd64-debian10-container'] 80 variables: 81 NAME: debian-all-test-cross 82 83amd64-debian-container: 84 <<: *container_job_definition 85 stage: containers-layer2 86 needs: ['amd64-debian10-container'] 87 variables: 88 NAME: debian-amd64 89 90arm64-debian-cross-container: 91 <<: *container_job_definition 92 stage: containers-layer2 93 needs: ['amd64-debian10-container'] 94 variables: 95 NAME: debian-arm64-cross 96 97arm64-test-debian-cross-container: 98 <<: *container_job_definition 99 stage: containers-layer2 100 needs: ['amd64-debian11-container'] 101 variables: 102 NAME: debian-arm64-test-cross 103 104armel-debian-cross-container: 105 <<: *container_job_definition 106 stage: containers-layer2 107 needs: ['amd64-debian10-container'] 108 variables: 109 NAME: debian-armel-cross 110 111armhf-debian-cross-container: 112 <<: *container_job_definition 113 stage: containers-layer2 114 needs: ['amd64-debian10-container'] 115 variables: 116 NAME: debian-armhf-cross 117 118hppa-debian-cross-container: 119 <<: *container_job_definition 120 stage: containers-layer2 121 needs: ['amd64-debian10-container'] 122 variables: 123 NAME: debian-hppa-cross 124 125m68k-debian-cross-container: 126 <<: *container_job_definition 127 stage: containers-layer2 128 needs: ['amd64-debian10-container'] 129 variables: 130 NAME: debian-m68k-cross 131 132mips64-debian-cross-container: 133 <<: *container_job_definition 134 stage: containers-layer2 135 needs: ['amd64-debian10-container'] 136 variables: 137 NAME: debian-mips64-cross 138 139mips64el-debian-cross-container: 140 <<: *container_job_definition 141 stage: containers-layer2 142 needs: ['amd64-debian10-container'] 143 variables: 144 NAME: debian-mips64el-cross 145 146mips-debian-cross-container: 147 <<: *container_job_definition 148 stage: containers-layer2 149 needs: ['amd64-debian10-container'] 150 variables: 151 NAME: debian-mips-cross 152 153mipsel-debian-cross-container: 154 <<: *container_job_definition 155 stage: containers-layer2 156 needs: ['amd64-debian10-container'] 157 variables: 158 NAME: debian-mipsel-cross 159 160powerpc-debian-cross-container: 161 <<: *container_job_definition 162 stage: containers-layer2 163 needs: ['amd64-debian10-container'] 164 variables: 165 NAME: debian-powerpc-cross 166 167ppc64-debian-cross-container: 168 <<: *container_job_definition 169 stage: containers-layer2 170 needs: ['amd64-debian10-container'] 171 variables: 172 NAME: debian-ppc64-cross 173 174ppc64el-debian-cross-container: 175 <<: *container_job_definition 176 stage: containers-layer2 177 needs: ['amd64-debian10-container'] 178 variables: 179 NAME: debian-ppc64el-cross 180 181riscv64-debian-cross-container: 182 <<: *container_job_definition 183 stage: containers-layer2 184 needs: ['amd64-debian10-container'] 185 variables: 186 NAME: debian-riscv64-cross 187 188s390x-debian-cross-container: 189 <<: *container_job_definition 190 stage: containers-layer2 191 needs: ['amd64-debian10-container'] 192 variables: 193 NAME: debian-s390x-cross 194 195sh4-debian-cross-container: 196 <<: *container_job_definition 197 stage: containers-layer2 198 needs: ['amd64-debian10-container'] 199 variables: 200 NAME: debian-sh4-cross 201 202sparc64-debian-cross-container: 203 <<: *container_job_definition 204 stage: containers-layer2 205 needs: ['amd64-debian10-container'] 206 variables: 207 NAME: debian-sparc64-cross 208 209tricore-debian-cross-container: 210 <<: *container_job_definition 211 stage: containers-layer2 212 needs: ['amd64-debian9-container'] 213 variables: 214 NAME: debian-tricore-cross 215 216win32-debian-cross-container: 217 <<: *container_job_definition 218 stage: containers-layer3 219 needs: ['amd64-debian9-mxe-container'] 220 variables: 221 NAME: debian-win32-cross 222 223win64-debian-cross-container: 224 <<: *container_job_definition 225 stage: containers-layer3 226 needs: ['amd64-debian9-mxe-container'] 227 variables: 228 NAME: debian-win64-cross 229 230xtensa-debian-cross-container: 231 <<: *container_job_definition 232 variables: 233 NAME: debian-xtensa-cross 234 235cris-fedora-cross-container: 236 <<: *container_job_definition 237 variables: 238 NAME: fedora-cris-cross 239 240amd64-fedora-container: 241 <<: *container_job_definition 242 variables: 243 NAME: fedora 244 245i386-fedora-cross-container: 246 <<: *container_job_definition 247 variables: 248 NAME: fedora-i386-cross 249 250amd64-ubuntu1804-container: 251 <<: *container_job_definition 252 variables: 253 NAME: ubuntu1804 254 255amd64-ubuntu2004-container: 256 <<: *container_job_definition 257 variables: 258 NAME: ubuntu2004 259 260amd64-ubuntu-container: 261 <<: *container_job_definition 262 variables: 263 NAME: ubuntu 264