Files
hawkbit/.azure-pipelines/integration-tests.yml
Kai Zimmermann e9f11d2a20 DB and RabbitMQ integration tests and PostgreSQL testing/bug fixing (#1047)
* Initial matrixSigned-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* License header

* MySQL DB testSigned-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* Create matrix for DBsSigned-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* RabbitMQ and H2Signed-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* MySQL 8.0Signed-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* Postgresql test supportSigned-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* Postgresql test supportSigned-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* Fix DB issues post and mssql

Signed-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* Wait MSSQL

Signed-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* Fix postgresql tests.

Signed-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* MSSQL startup fix.Signed-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* Fix syntax error

Signed-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* Further fix postgres tests.Signed-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* Revert unnecessary changes.

Signed-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* Add SonarCloud Signed-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>

* Simplify devcontainer. Test JDK 15Signed-off-by: Kai Zimmermann <kai.zimmermann@microsoft.com>
2021-01-14 09:07:03 +01:00

120 lines
4.7 KiB
YAML

# Build hawkBit and run tests with Apache Maven.
# Runs a matrix of various DB,JDK,RabbitMQ versions that are supported by hawkBit
#
# Requires the SonarCloud plugin and connection setup
# https://kaizimmerm.com/post/azure-pipelines-for-the-oss-developer/#analyze-the-code-with-sonarcloud
#
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/java
# https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema
# https://docs.microsoft.com/en-us/azure/devops/pipelines/release/caching?view=azure-devops#maven
pool:
vmImage: "ubuntu-18.04"
# Default values for the hawbit build. Can be overriden in the variable group 'hawkbit'
# see https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups
variables:
# Defines defaults
- name: sonarCloudConnection
value: 'hawkBitSonar'
- name: sonarCloudOrganization
value: 'hawkbit'
- name: sonarProjectKey
value: 'org.eclipse:hawkbit'
# Override defaults
- group: hawkbit
jobs:
- job: JDK_11
displayName: Verify with JDK-11 and SonarCloud analysis
steps:
- template: rabbitmq-template.yml
- template: maven-template.yml
parameters:
mavenGoals: "verify -Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=$(sonarCloudOrganization) -Dsonar.projectKey=$(sonarProjectKey)"
jdkVersionOption: "1.11"
sonarQubeRunAnalysis: true
sonarCloudConnection: $(sonarCloudConnection)
sonarCloudOrganization: $(sonarCloudOrganization)
- job: JDK_8
displayName: Build with JDK-8 (hawkBit default)
steps:
- template: maven-template.yml
parameters:
mavenGoals: "install license:check"
- job:
dependsOn: JDK_8
condition: succeeded()
displayName: RABBIT
strategy:
matrix:
3.6:
rabbitmqVersion: "3.6"
3.7:
rabbitmqVersion: "3.7"
3.8:
rabbitmqVersion: "3.8"
steps:
- template: rabbitmq-template.yml
parameters:
rabbitmqVersion: $(rabbitmqVersion)
- template: maven-template.yml
parameters:
mavenGoals: "verify"
- job:
dependsOn: JDK_8
condition: succeeded()
displayName: MYSQL
strategy:
matrix:
5.6:
dbVersion: "5.6"
5.7:
dbVersion: "5.7"
steps:
- template: rabbitmq-template.yml
- script: "docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=8236472364 -e MYSQL_DATABASE=hawkbit -d mysql:$(dbVersion)"
displayName: "Setup MYSQL Database docker instance"
- template: maven-template.yml
parameters:
mavenGoals: "verify -Dspring.jpa.database=MYSQL -Dspring.datasource.driverClassName=org.mariadb.jdbc.Driver -Dspring.datasource.url=jdbc:mysql://localhost:3306/hawkbit -Dspring.datasource.username=root -Dspring.datasource.password=8236472364"
- job:
dependsOn: JDK_8
condition: succeeded()
displayName: MSSQL
strategy:
matrix:
2017:
dbVersion: "2017-latest"
2019:
dbVersion: "2019-latest"
steps:
- template: rabbitmq-template.yml
- script: |
docker run --name mssql -p 1433:1433 -e ACCEPT_EULA=Y -e SA_PASSWORD=1234567890.Ab -d mcr.microsoft.com/mssql/server:$(dbVersion)
until [ "`/usr/bin/docker inspect -f {{.State.Running}} mssql`" == "true" ]; do sleep 1; done
sleep 120
until docker exec mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "1234567890.Ab" -Q "CREATE DATABASE hawkbit"; do sleep 1; done
displayName: "Setup MSSQL Database docker instance"
- template: maven-template.yml
parameters:
mavenGoals: "verify -Dspring.jpa.database=SQL_SERVER -Dspring.datasource.url=jdbc:sqlserver://localhost:1433;database=hawkbit -Dspring.datasource.username=SA -Dspring.datasource.password=1234567890.Ab -Dspring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver"
- job:
dependsOn: JDK_8
condition: succeeded()
displayName: POSTGRESQL
strategy:
matrix:
12:
dbVersion: "12"
13:
dbVersion: "13"
steps:
- template: rabbitmq-template.yml
- script: "docker run --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=1234567890 -e POSTGRES_DB=hawkbit -d postgres:$(dbVersion)"
displayName: "Setup POSTGRESQL Database docker instance"
- template: maven-template.yml
parameters:
mavenGoals: "verify -Dspring.jpa.database=POSTGRESQL -Dspring.datasource.url=jdbc:postgresql://localhost:5432/hawkbit?currentSchema=hawkbit -Dspring.datasource.username=postgres -Dspring.datasource.password=1234567890 -Dspring.datasource.driverClassName=org.postgresql.Driver"