diff --git a/.github/workflows/migrate.yml b/.github/workflows/migrate.yml index e00cccdc5..61f24db90 100644 --- a/.github/workflows/migrate.yml +++ b/.github/workflows/migrate.yml @@ -16,6 +16,8 @@ jobs: uses: actions/setup-java@v1 with: java-version: 11.0.11 + - name: Log in to Docker Hub + run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} - name: Run production migration env: MONGO_HOST: ${{ secrets.MONGO_HOST }} diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index a2a627ba7..b649e5838 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -4,11 +4,6 @@ on: pull_request_target jobs: build: runs-on: ubuntu-latest - services: - mongodb: - image: mongo:3.2 - ports: - - 27017:27017 steps: - name: Checkout source code uses: actions/checkout@v2 @@ -16,6 +11,8 @@ jobs: uses: actions/setup-java@v1 with: java-version: 11.0.11 + - name: Log in to Docker Hub + run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} - name: Run local migration run: ./gradlew clean run - uses: kentaro-m/auto-assign-action@v1.1.2 diff --git a/build.gradle b/build.gradle index 4e3dd3f5a..70b84d8b9 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,11 @@ +import com.bmuschko.gradle.docker.tasks.container.* + plugins { id "java" id "scala" id "application" id "cz.alenkacz.gradle.scalafmt" version "1.16.2" + id 'com.bmuschko.docker-remote-api' version '9.0.1' } version = '1.0.2' @@ -24,3 +27,23 @@ dependencies { } compileScala.dependsOn("checkScalafmt") + +task createMongoContainer(type: DockerCreateContainer) { + targetImageId 'mongo:3.2' + containerName = 'mongo' + hostConfig.portBindings = ['27017:27017'] + hostConfig.autoRemove = true +} + +task startMongoContainer(type: DockerStartContainer) { + dependsOn createMongoContainer + targetContainerId createMongoContainer.containerId +} + +task stopMongoContainer(type: DockerStopContainer) { + targetContainerId createMongoContainer.containerId +} + +run.dependsOn(startMongoContainer) + +run.finalizedBy(stopMongoContainer) \ No newline at end of file