stages: - image - build variables: DOCKER_HOST: tcp://docker:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" # Where to push the dev image. Leave empty to not push at all. # Examples: "192.168.1.11:9090//openra3" or "docker.io//openra3" IMAGE_NAME: "" APT_MIRROR: "http://mirrors.tuna.tsinghua.edu.cn/ubuntu" image_build: stage: image image: docker:latest services: - name: docker:dind # Pull docker.io images through the intranet Harbor pull-through cache; # plain HTTP registry, hence --insecure-registry. command: - --registry-mirror=http://192.168.1.11:9090/dockerhub - --insecure-registry=192.168.1.11:9090 script: - docker build --target dev -t openra3-dev:local --build-arg APT_MIRROR=$APT_MIRROR . - docker save openra3-dev:local -o dev-image.tar - | if [ -n "$IMAGE_NAME" ]; then # add `docker login` here if IMAGE_NAME points to a private registry docker tag openra3-dev:local $IMAGE_NAME:$CI_COMMIT_SHORT_SHA docker push $IMAGE_NAME:$CI_COMMIT_SHORT_SHA fi artifacts: name: "dev-image-$CI_COMMIT_SHORT_SHA" paths: - dev-image.tar expire_in: 1 day tags: - docker build_test_package: stage: build image: docker:latest services: - name: docker:dind command: - --registry-mirror=http://192.168.1.11:9090/dockerhub - --insecure-registry=192.168.1.11:9090 needs: - image_build before_script: - docker load -i dev-image.tar script: - docker run --rm -v "$(pwd):/work" -w /work openra3-dev:local cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release - docker run --rm -v "$(pwd):/work" -w /work openra3-dev:local cmake --build build -j - docker run --rm -v "$(pwd):/work" -w /work openra3-dev:local ctest --test-dir build --output-on-failure - docker run --rm -v "$(pwd):/work" -w /work openra3-dev:local bash -c "mkdir -p artifacts_bin && cp build/bin/openra3 artifacts_bin/" artifacts: name: "$CI_PROJECT_NAME-executables-$CI_COMMIT_SHORT_SHA" paths: - artifacts_bin/ expire_in: 7 days tags: - docker