Blame view

keycloak_test.groovy 3.99 KB
866567c3c   George Vlahavas   Add keycloak fail...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
  /**
  * Jenkinsfile to deploy multiple Docker containers based on docker-compose into a DEV server and run any test.
  * This pipeline will run the Docker containers, execute the tests and then stop and remove the containers from the DEV  
  * server automatically.
  **/
  
  
  pipeline {
  
    agent any
  
      environment {
        // Keep as is the following two lines
        PRIVATE_REGISTRY = "https://registry.curex-project.eu:443/curex-local/"
        ARTIFACTORY_URL = "registry.curex-project.eu:443/curex-local/"
  
        HOST_IP = "116.203.166.220"
        DEPLOYMENT_HOST = "${HOST_IP}:2376"
        DEPLOYMENT_HOST_CREDENTIALS = "vm2-creds"
        
        // KEA specific
        APP_NAME = "KEA"
        APP_ENV = "production"
        APP_DEBUG = "true"
        APP_URL = "https://kea.curex-project.eu"
  
        KIBANA_PORT = "5601"
        GRAFANA_PORT = "3000"
        
        LOG_CHANNEL = "stack"
        
        DB_CONNECTION = "pgsql"
        DB_HOST = "timescaledb"
        DB_PORT = "5432"
        DB_DATABASE = "kea"
        DB_USERNAME = "postgres"
        DB_PASSWORD = "postgres"
        
        BROADCAST_DRIVER = "log"
        CACHE_DRIVER = "file"
        QUEUE_CONNECTION = "sync"
        SESSION_DRIVER = "file"
        SESSION_LIFETIME = "120"
        
        JWT_TTL = "1440"
        
        ELASTICSEARCH_HOST = "elasticsearch"
        ELASTICSEARCH_PORT = "9200"
        ELASTICSEARCH_SCHEME = "http"
        
        MQTT_HOST = "mosquitto"
        MQTT_PORT = "1883"
        MQTT_DEBUG = "false"
        MQTT_QOS = "0"
        MQTT_RETAIN = "0"
        
        MLTD_HOST = "mltd"
        MLTD_PORT = "5000"
        OD_HOST = "od"
        OD_PORT = "9091"
        
        KEYCLOAK_REALM_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg9OruW+gRnBcm4S1da+TDj7LdDXTFykExlg2z5Fx/vv4ldJf1/vCAEdSP/HZXRMq5TRefnkzVyv66COmjyPjGNB2P240HOOzBPnU5ibsu7H2betZvR+uj/y9o5T3hUpPy+Gbb02i57xoKyECy+yRtPjmF63R0rFfFBV/LdScWdnltTY7YfmRe6dRcBZG5QZ8bKTWP40QUzwG2PnJpIEi3KdYp4qDx4LvXnSvIC0Z6E59R2oialMKQtPO5Xu9Ea6fYe4guqX9zdpoC+bcvxjJ275zj+RoFVaQHhGBZDPeK4VITmXiUWkBbTGQwEVY8ZY4b62kWFwjOg9yOv47s6N7cQIDAQAB"
        KEYCLOAK_LOAD_USER_FROM_DATABASE = "false"
        KEYCLOAK_USER_PROVIDER_CREDENTIAL = "name"
        KEYCLOAK_TOKEN_PRINCIPAL_ATTRIBUTE = "preferred_username"
        KEYCLOAK_APPEND_DECODED_TOKEN = "false"
        KEYCLOAK_ALLOWED_RESOURCES = "account"
  
        AUTH_ENABLED = "true"
      }
  
    stages {
             
      stage('Checkout the source code') {
        steps {
          checkout scm
        }
      }
      
    
      stage('Deploy Docker containers in DEV server') {
        steps {
          script {
            docker.withServer("$DEPLOYMENT_HOST", "$DEPLOYMENT_HOST_CREDENTIALS") {
              docker.withRegistry("$PRIVATE_REGISTRY" , 'artifactory') {
                echo 'Deploying the specified Docker containers in DEV server'
                sh 'sh deploy_hetzner.sh'
              }
            }
          }
        }
      }
  
      stage('Run tests') {
        steps {
          script {
            echo '*************'
            echo '*** TESTS ***'
            echo '*************'
            /* Here do your tests */
            sleep 90
            try {
              String testName = "KEA_keycloak_fail"
              String url = "$APP_URL/api/v1/od/status"
              String responseCode = sh(label: testName, script: "curl -m 10 -sLI -w '%{http_code}' -H 'Accept: application/json, text/plain, */*' $url -o /dev/null", returnStdout: true)
              if ( responseCode != '401' ) {
                error("$testName: Returned status code = $responseCode when calling $url")
              }
971ec8495   George Vlahavas   Add catch statement
109
110
111
            } catch (ignored) {
              currentBuild.result = 'FAILURE'
              echo "KEA Keycloak Tests failed"
866567c3c   George Vlahavas   Add keycloak fail...
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
            }
          }
        }
      }
  
      stage('Stop and remove the Docker containers in DEV server') {
        steps {
          script {
            docker.withServer("$DEPLOYMENT_HOST", "$DEPLOYMENT_HOST_CREDENTIALS") {
              docker.withRegistry("$PRIVATE_REGISTRY" , 'artifactory') {
  
                //echo 'Stop and remove the specified Docker containers from the DEV server'
                sh 'sh delete_hetzner.sh'
              }
            }
          }
        }
      }
    }
  }