diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index b482cc0..aff2346 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -3,11 +3,6 @@ on: pull_request_target jobs: test: runs-on: ubuntu-latest - services: - mongodb: - image: mongo:3.2 - ports: - - 27017:27017 steps: - name: Checkout source code uses: actions/checkout@v2 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 89737d7..45c9c9e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,11 +9,6 @@ jobs: name: "Stable Release" runs-on: ubuntu-latest environment: production - services: - mongodb: - image: mongo:3.2 - ports: - - 27017:27017 steps: - uses: actions/checkout@v2 with: diff --git a/build.gradle b/build.gradle index f95cc31..d172cf5 100644 --- a/build.gradle +++ b/build.gradle @@ -36,6 +36,7 @@ dependencies { testCompile "org.codehaus.groovy:groovy-all:2.4.19" testCompile "org.spockframework:spock-core:1.1-groovy-2.4" + testCompile "org.testcontainers:mongodb:1.16.0" testRuntime "cglib:cglib-nodep:3.1" testRuntime "org.objenesis:objenesis:2.1" diff --git a/src/funtest/groovy/support/MongoHelper.groovy b/src/funtest/groovy/support/MongoHelper.groovy index e7f8388..398117e 100644 --- a/src/funtest/groovy/support/MongoHelper.groovy +++ b/src/funtest/groovy/support/MongoHelper.groovy @@ -5,6 +5,8 @@ import com.mongodb.MongoClient import com.mongodb.WriteConcern import com.mongodb.client.MongoDatabase import org.bson.types.ObjectId +import org.testcontainers.containers.MongoDBContainer +import org.testcontainers.utility.DockerImageName import java.util.concurrent.atomic.AtomicLong @@ -16,7 +18,11 @@ class MongoHelper { static id = new AtomicLong() static prepareDB(){ - def mongo = new MongoClient() + def mongoDBContainer = new MongoDBContainer(DockerImageName.parse("mongo:3.2")) + mongoDBContainer.setPortBindings(["27017:27017"]) + + mongoDBContainer.start() + def mongo = new MongoClient(mongoDBContainer.getHost(), mongoDBContainer.getFirstMappedPort()) mongo.writeConcern = WriteConcern.UNACKNOWLEDGED mongo.getDatabase("sdkman") }