From aa8c84c179771584890f25c25c5303a8c3788a99 Mon Sep 17 00:00:00 2001
From: Mark <mark@openappstack.net>
Date: Tue, 6 Aug 2019 14:59:34 +0200
Subject: [PATCH] Add gitlab CI application test

---
 .gitlab-ci.yml                 | 35 ++++++++++++++++++++++++++++++++++
 login_provider/test/Dockerfile | 11 +++++++++++
 2 files changed, 46 insertions(+)
 create mode 100644 login_provider/test/Dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 96028e1..92f20eb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,6 @@
 stages:
   - build
+  - application-test
 
 consentProvider_image:
   stage: build
@@ -34,3 +35,37 @@ loginProvider_image:
   only:
     changes:
       - login_provider/*
+
+loginProviderCiTest_image:
+  stage: build
+    DOCKER_DRIVER: overlay2
+  image: docker:stable
+  services:
+    - docker:18-dind  # FIXME This is an older version of DIND. Update when gitlab-runner fixes https://gitlab.com/gitlab-org/gitlab-runner/issues/4501
+  before_script:
+    - docker info
+  script:
+    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
+    - docker build -t ${CI_REGISTRY_IMAGE}/login_provider_ci_test:${CI_COMMIT_REF_NAME} login_provider/test/
+    - docker push ${CI_REGISTRY_IMAGE}/login_provider_ci_test:${CI_COMMIT_REF_NAME}
+  only:
+    changes:
+      - login_provider/*
+
+behave-login:
+  stage: application-test
+  services:
+    - name: ${CI_REGISTRY_IMAGE}/login_provider:${CI_COMMIT_REF_NAME}
+      alias: login_provider
+  image: ${CI_REGISTRY_IMAGE}/login_provider_ci_test:${CI_COMMIT_REF_NAME}
+  script:
+    - cd login_provider/test/behave/
+    - python -m behave -D url=http://login_provider -D email=example@oas.example.net -D password=password
+  artifacts:
+    paths:
+      - login_provider/test/behave/screenshots/
+    expire_in: 1 month
+    when: on_failure
+  only:
+    changes:
+      - login_provider/*
diff --git a/login_provider/test/Dockerfile b/login_provider/test/Dockerfile
new file mode 100644
index 0000000..628e03d
--- /dev/null
+++ b/login_provider/test/Dockerfile
@@ -0,0 +1,11 @@
+FROM alpine:3.9
+
+LABEL name="Login_provider CI test image"
+
+RUN apk --no-cache add \
+  chromium \
+  chromium-chromedriver \
+  python3-dev \
+  python3-pip
+
+RUN pip3 install behave behave_webdriver
-- 
GitLab