diff --git a/drone/.drone.yml b/drone/.drone.yml index 6cf7c5e..049b83c 100644 --- a/drone/.drone.yml +++ b/drone/.drone.yml @@ -3,48 +3,29 @@ type: docker name: "Server CI" -#steps: -# - name: Unit tests -# image: override6/tbasket-backend:latest -# volumes: -# - name: build -# path: ./build -# commands: -# - ./mill tests.test - -# - name: Deploy -# image: override6/tbasket-backend:latest -# depends_on: -# - 'Unit tests' -# environment: -# SSH_PRIVATE_KEY: -# from_secret: SSH_PRIVATE -# PASSWD: -# from_secret: PASSWD -# volumes: -# - name: build -# path: ./build -# commands: -# - ./mill Core.compile -# - chmod 777 drone/deliver.sh -# - drone/deliver.sh - - ---- -kind: pipeline -type: docker -name: "Deploy committed docker images" - steps: - - name: Build and push - image: override6/docker-git - environment: - DOCKER_USERNAME: - from_secret: DOCKER_USERNAME - DOCKER_PASSWORD: - from_secret: DOCKER_PASSWORD + - name: Unit tests + image: override6/tbasket-test:latest + volumes: + - name: build + path: ./build commands: - - chmod +x drone/image-deploy.sh - - drone/image-deploy.sh + - ./mill tests.test + - name: Deploy + image: override6/tbasket-backend:latest + depends_on: + - 'Unit tests' + environment: + SSH_PRIVATE_KEY: + from_secret: SSH_PRIVATE + PASSWD: + from_secret: PASSWD + volumes: + - name: build + path: ./build + commands: + - ./mill Core.compile + - chmod 777 drone/deliver.sh + - drone/deliver.sh diff --git a/target/test-reports-zio/output.json b/target/test-reports-zio/output.json index 4cbe5e4..6323981 100644 --- a/target/test-reports-zio/output.json +++ b/target/test-reports-zio/output.json @@ -1,44 +1,44 @@ { "results": [ { - "name" : "org.tbasket.test.pages.LoginPageHandlerTests/\/login page handler/login situation tests/login with unknown account", + "name" : "Test Task name not available here/\/login page handler/login situation tests/login with unknown account", "status" : "Success", - "durationMillis" : "3408", + "durationMillis" : "3658", "annotations" : "", - "fullyQualifiedClassName" : "org.tbasket.test.pages.LoginPageHandlerTests", + "fullyQualifiedClassName" : "Test Task name not available here", "labels" : ["\/login page handler", "login situation tests", "login with unknown account"] }, { - "name" : "org.tbasket.test.pages.LoginPageHandlerTests/\/login page handler/erroned request body tests/with invalid json", + "name" : "Test Task name not available here/\/login page handler/erroned request body tests/with invalid json", "status" : "Success", - "durationMillis" : "2403", + "durationMillis" : "2587", "annotations" : "", - "fullyQualifiedClassName" : "org.tbasket.test.pages.LoginPageHandlerTests", + "fullyQualifiedClassName" : "Test Task name not available here", "labels" : ["\/login page handler", "erroned request body tests", "with invalid json"] }, { - "name" : "org.tbasket.test.pages.LoginPageHandlerTests/\/login page handler/erroned request body tests/with no password attribute", + "name" : "Test Task name not available here/\/login page handler/erroned request body tests/with no mail attribute", "status" : "Success", - "durationMillis" : "2406", + "durationMillis" : "2629", "annotations" : "", - "fullyQualifiedClassName" : "org.tbasket.test.pages.LoginPageHandlerTests", - "labels" : ["\/login page handler", "erroned request body tests", "with no password attribute"] + "fullyQualifiedClassName" : "Test Task name not available here", + "labels" : ["\/login page handler", "erroned request body tests", "with no mail attribute"] }, { - "name" : "org.tbasket.test.pages.LoginPageHandlerTests/\/login page handler/erroned request body tests/with no mail attribute", + "name" : "Test Task name not available here/\/login page handler/erroned request body tests/empty packet", "status" : "Success", - "durationMillis" : "2412", + "durationMillis" : "2633", "annotations" : "", - "fullyQualifiedClassName" : "org.tbasket.test.pages.LoginPageHandlerTests", - "labels" : ["\/login page handler", "erroned request body tests", "with no mail attribute"] + "fullyQualifiedClassName" : "Test Task name not available here", + "labels" : ["\/login page handler", "erroned request body tests", "empty packet"] }, { - "name" : "org.tbasket.test.pages.LoginPageHandlerTests/\/login page handler/erroned request body tests/empty packet", + "name" : "Test Task name not available here/\/login page handler/erroned request body tests/with no password attribute", "status" : "Success", - "durationMillis" : "2436", + "durationMillis" : "2619", "annotations" : "", - "fullyQualifiedClassName" : "org.tbasket.test.pages.LoginPageHandlerTests", - "labels" : ["\/login page handler", "erroned request body tests", "empty packet"] + "fullyQualifiedClassName" : "Test Task name not available here", + "labels" : ["\/login page handler", "erroned request body tests", "with no password attribute"] } ] diff --git a/tests/resources/generate_keys.sh b/tests/resources/generate_keys.sh index e69de29..6165fda 100644 --- a/tests/resources/generate_keys.sh +++ b/tests/resources/generate_keys.sh @@ -0,0 +1,27 @@ +#!/usr/bin/bash + +echo GENERATING TEMPORARY KEY PAIRS FOR TESTS + +rm -r /tmp/keys +mkdir /tmp/keys +cd /tmp/keys +keytool -genkey -noprompt \ + -alias key \ + -keyalg RSA \ + -validity 1 \ + -keystore test.keystore \ + -storetype PKCS12 \ + -dname "CN=mqttserver.ibm.com, OU=ID, O=IBM, L=Hursley, S=Hants, C=GB" \ + -storepass 123456789 \ + -keypass 123456789 + +keytool -noprompt -export \ + -alias key \ + -keystore test.keystore \ + -rfc \ + -file public.cert \ + -keypass 123456789 \ + -storepass 123456789 + +echo "123456789" | openssl pkcs12 -in test.keystore -nodes -nocerts -out private.pcks 2> /dev/null +echo "123456789" | openssl pkcs12 -in test.keystore -nokeys -out public.cert 2> /dev/null diff --git a/tests/src/org/tbasket/test/TestServerConfig.scala b/tests/src/org/tbasket/test/TestServerConfig.scala index 566093d..0b53ede 100644 --- a/tests/src/org/tbasket/test/TestServerConfig.scala +++ b/tests/src/org/tbasket/test/TestServerConfig.scala @@ -10,13 +10,17 @@ import java.nio.file.{Files, Path} import java.security.cert.{Certificate, CertificateFactory} object TestServerConfig extends ServerConfig { + new ProcessBuilder("bash", "./tests/resources/generate_keys.sh") + .inheritIO() + .start() + .waitFor() private final val CertFactory = CertificateFactory.getInstance("X509") override def emitterURL: URL = URL.fromString(s"http://localhost/$PORT").getOrElse(null) override def emitterCertificate: Certificate = - CertFactory.generateCertificate(Files.newInputStream(Path.of("keys/public.cert"))) + CertFactory.generateCertificate(Files.newInputStream(Path.of("/tmp/keys/public.cert"))) override def emitterKeyAlgorithm: JwtAsymmetricAlgorithm = JwtAlgorithm.RS256