diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d6ed526d1ed0a48fe51c5a4d5d85d91c84545efe..721eda3627bdf902cdd5f8e15b4bcc4df9ba1444 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,41 +6,29 @@ variables: POSTGRES_USER: storktest POSTGRES_PASSWORD: storktest +# this is used to build docker images of stork (using DIND) + DOCKER_DRIVER: overlay2 + DOCKER_TLS_CERTDIR: "" # this is workaround for TLS problem https://about.gitlab.com/blog/2019/07/31/docker-in-docker-with-docker-19-dot-03/ + +# stages order stages: - build + - deploy +# cache cache: key: one-shared-key paths: - webui/node_modules/ - tools/ +# common before script before_script: - apt-get update - apt-get install -y wget xz-utils rake openjdk-11-jre-headless gcc g++ chromium-browser unzip - rake prepare_env -# race_detector: -# stage: test -# script: -# - make race - -# memory_sanitizer: -# stage: test -# script: -# - make msan - -# code_coverage: -# stage: test -# script: -# - make coverage - -# code_coverage_report: -# stage: test -# script: -# - make coverhtml -# only: -# - master +### build jobs ### lint_go: stage: build @@ -64,6 +52,23 @@ build_webui: stage: build script: - rake build_ui + artifacts: + name: "webui" + expire_in: 1 week + paths: + - webui/dist/stork/ + +build_backend: + stage: build + script: + - rake build_backend + artifacts: + name: "backend" + expire_in: 1 week + paths: + - backend/cmd/stork-agent/stork-agent + - backend/cmd/stork-server/stork-server + - backend/cmd/stork-db-migrate/stork-db-migrate danger: stage: build @@ -88,3 +93,36 @@ tarball: paths: - stork-*.tar.gz expire_in: 1 week + + +### deploy jobs ### + +deploy_demo: + stage: deploy + when: manual + image: docker:latest + tags: + - linux + - docker + - amd64 + services: + - docker:dind + dependencies: + - build_webui + - build_backend + before_script: + - ip -6 route del default + - docker info + - docker login -u "$CI_REGISTRY_USER" -p "$CI_JOB_TOKEN" "$CI_REGISTRY" + - apk update + - apk upgrade + - apk add docker-compose + - eval $(ssh-agent -s) + - echo "$SSH_PRIVATE_KEY_STORK" | base64 -d | ssh-add - + script: + - docker-compose build + - docker-compose push + - scp -o StrictHostKeyChecking=no docker-compose.yaml jenkins@stork.lab.isc.org:~/deploy + - ssh -o StrictHostKeyChecking=no jenkins@stork.lab.isc.org docker-compose -f deploy/docker-compose.yaml down + - ssh -o StrictHostKeyChecking=no jenkins@stork.lab.isc.org docker-compose -f deploy/docker-compose.yaml pull + - ssh -o StrictHostKeyChecking=no jenkins@stork.lab.isc.org docker-compose -f deploy/docker-compose.yaml up -d --no-build diff --git a/docker-compose.yaml b/docker-compose.yaml index 04c110343d6cd581a82c6642b75121fa74ff2990..71618aa21cc70474fdb1ea177e05444e4fa0f609 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,6 +6,7 @@ services: build: context: . dockerfile: docker/docker-server.txt + image: registry.gitlab.isc.org/isc-projects/stork/server:latest expose: - "8080" ports: @@ -24,7 +25,8 @@ services: build: context: . dockerfile: docker/docker-agent-kea.txt - hostname: moneypenny + image: registry.gitlab.isc.org/isc-projects/stork/agent-kea:latest + hostname: agent-kea expose: - "8080" @@ -33,7 +35,8 @@ services: build: context: . dockerfile: docker/docker-agent-bind9.txt - hostname: jamesbond + image: registry.gitlab.isc.org/isc-projects/stork/agent-bind9:latest + hostname: agent-bind9 expose: - "8080" @@ -41,6 +44,7 @@ services: build: context: . dockerfile: docker/docker-webui.txt + image: registry.gitlab.isc.org/isc-projects/stork/webui:latest ports: - "8080:80" environment: