65 lines
2.1 KiB
YAML
65 lines
2.1 KiB
YAML
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/<group>/openra3" or "docker.io/<user>/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
|