From 5ab0a53b7e2faf9db8cce2c765ba0775249c2bb9 Mon Sep 17 00:00:00 2001
From: Andrej Shadura <andrew.shadura@collabora.co.uk>
Date: Wed, 30 Mar 2022 17:56:02 +0200
Subject: [PATCH] Add a basic integration test

Attempt to boot the freshly built OBS images, verify both backend and
frontend come up.

Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
---
 .gitlab-ci.yml | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 85c801f39b..06a0f7631f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -63,3 +63,53 @@ worker:
     - job: backend
   variables:
     image: worker
+
+.boot-instance:
+  image: debian:bookworm-slim
+  tags:
+    - heavyweight
+  services:
+    - name: docker:stable-dind
+      alias: docker
+  variables:
+    DOCKER_DRIVER: overlay2
+    DOCKER_HOST: tcp://docker:2375
+    DOCKER_TLS_CERTDIR: ""
+  before_script:
+    - apt update && apt install -y --no-install-recommends
+        curl
+        docker-compose
+        docker.io
+        wait-for-it
+    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
+    - docker info
+    - |
+      cat << EOF > docker-compose.override.yml
+      version: '2.1'
+      services:
+        frontend:
+          image: $CI_REGISTRY_IMAGE/frontend:$CI_COMMIT_REF_SLUG
+          ports:
+            - "80:3000"
+        backend:
+          image: $CI_REGISTRY_IMAGE/backend:$CI_COMMIT_REF_SLUG
+          ports:
+            - "5252:5252"
+        worker:
+          image: $CI_REGISTRY_IMAGE/worker:$CI_COMMIT_REF_SLUG
+      EOF
+    - docker-compose up -d
+    - wait-for-it docker:5252 -s --timeout=180 -- echo "The OBS backend is up"
+    - wait-for-it docker:80 -s --timeout=180 -- echo "The OBS frontend is up"
+  after_script:
+    - docker-compose logs > docker-compose.txt
+  artifacts:
+    paths:
+      - docker-compose.txt
+    when: always
+
+integration-test:
+  stage: test
+  extends: .boot-instance
+  script:
+    - curl http://docker:80/
-- 
GitLab