diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 41a333ae..140144bd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -77,6 +77,70 @@ jobs: name: logs.tgz path: ./logs.tgz + testSsl: + timeout-minutes: 5 + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + scala-version: + - 2.11 + - 2.12 + spark-version: + - 2.4 + - 3.1 + topology: + - single + java-version: + - 8 + - 11 + docker-img: + - docker.io/arangodb/arangodb:3.8.3 + exclude: + - scala-version: 2.11 + spark-version: 3.1 + - scala-version: 2.11 + java-version: 11 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - uses: actions/setup-java@v2 + with: + java-version: ${{matrix.java-version}} + distribution: 'adopt' + - name: Start Database + run: ./docker/start_db.sh + env: + SSL: true + STARTER_MODE: ${{matrix.topology}} + DOCKER_IMAGE: ${{matrix.docker-img}} + - name: Cache local Maven repository + uses: actions/cache@v2 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-maven- + - name: Info + run: mvn -version + - name: Test + run: mvn -e --no-transfer-progress -f ./integration-tests/pom.xml -Pscala-${{matrix.scala-version}} -Pspark-${{matrix.spark-version}} -Dtest=org.apache.spark.sql.arangodb.datasource.SslTest -DSslTest=true test + - name: Collect docker logs on failure + if: ${{ cancelled() || failure() }} + uses: jwalton/gh-docker-logs@v1 + with: + dest: './logs' + - name: Tar logs + if: ${{ cancelled() || failure() }} + run: tar cvzf ./logs.tgz ./logs + - name: Upload logs to GitHub + if: ${{ cancelled() || failure() }} + uses: actions/upload-artifact@master + with: + name: logs.tgz + path: ./logs.tgz + test-older-spark-versions: timeout-minutes: 5 runs-on: ubuntu-latest diff --git a/integration-tests/src/test/scala/org/apache/spark/sql/arangodb/datasource/SslTest.scala b/integration-tests/src/test/scala/org/apache/spark/sql/arangodb/datasource/SslTest.scala index 4f12ca09..12ea67ed 100644 --- a/integration-tests/src/test/scala/org/apache/spark/sql/arangodb/datasource/SslTest.scala +++ b/integration-tests/src/test/scala/org/apache/spark/sql/arangodb/datasource/SslTest.scala @@ -9,7 +9,8 @@ import com.fasterxml.jackson.databind.{JsonSerializer, ObjectMapper, SerializerP import com.fasterxml.jackson.module.scala.DefaultScalaModule import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType} import org.apache.spark.sql.{DataFrame, SparkSession} -import org.junit.jupiter.api.{AfterEach, BeforeEach, Disabled, Test} +import org.junit.jupiter.api.condition.EnabledIfSystemProperty +import org.junit.jupiter.api.{AfterEach, BeforeEach, Test} import java.io.ByteArrayInputStream import java.security.KeyStore @@ -19,7 +20,7 @@ import java.time.LocalDate import java.util.Base64 import javax.net.ssl.{SSLContext, TrustManagerFactory} -@Disabled("manual test only") +@EnabledIfSystemProperty(named = "SslTest", matches = "true") class SslTest { private val arangoDB: ArangoDB = SslTest.arangoDB private val db: ArangoDatabase = SslTest.db @@ -101,6 +102,7 @@ object SslTest { .password(password) .host(singleEndpoint.split(':').head, singleEndpoint.split(':')(1).toInt) .serializer(new ArangoJack() { + //noinspection ConvertExpressionToSAM configure(new ArangoJack.ConfigureFunction { override def configure(mapper: ObjectMapper): Unit = mapper .registerModule(DefaultScalaModule) diff --git a/pom.xml b/pom.xml index 1157b6e0..1a77d389 100644 --- a/pom.xml +++ b/pom.xml @@ -220,7 +220,7 @@ org.junit junit-bom - 5.8.1 + 5.8.2 pom import