diff options
-rw-r--r-- | .travis.yml | 5 | ||||
-rwxr-xr-x | ci/test-mill-0.5.sh | 11 | ||||
-rw-r--r-- | contrib/flyway/test/src/BuildTest.scala | 53 | ||||
-rw-r--r-- | docs/pages/9 - Contrib Modules.md | 1 |
4 files changed, 70 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml index e7a73872..9ae0ba67 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,6 +28,11 @@ matrix: env: CI_SCRIPT=ci/test-mill-0.sh jdk: oraclejdk8 - stage: build + env: CI_SCRIPT=ci/test-mill-0.5.sh + jdk: oraclejdk8 + addons: + postgresql: "9.6" + - stage: build env: CI_SCRIPT=ci/test-mill-1.sh jdk: oraclejdk8 - stage: build diff --git a/ci/test-mill-0.5.sh b/ci/test-mill-0.5.sh new file mode 100755 index 00000000..20c58c7f --- /dev/null +++ b/ci/test-mill-0.5.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -eux + +# Starting from scratch... +git clean -xdf + +psql -c 'create database test_db;' -U postgres + +# Run tests that use a db +mill -i contrib.flyway.test diff --git a/contrib/flyway/test/src/BuildTest.scala b/contrib/flyway/test/src/BuildTest.scala new file mode 100644 index 00000000..9f51f72c --- /dev/null +++ b/contrib/flyway/test/src/BuildTest.scala @@ -0,0 +1,53 @@ +package mill.contrib.flyway + +import mill._ +import mill.scalalib._ +import mill.util.{TestEvaluator, TestUtil} +import utest.{TestSuite, Tests, assert, _} + +object BuildTest extends TestSuite { + object Build extends TestUtil.BaseModule { + object build extends FlywayModule { + + def resources = T.sources(os.pwd / 'contrib / 'flyway / 'test / 'resources) + + def postgres = ivy"org.postgresql:postgresql:42.2.5" + + def flywayUrl = "jdbc:postgresql:test_db" + def flywayUser = "postgres" + def flywayDriverDeps = Agg(postgres) + } + } + + def tests = Tests { + 'clean - { + val eval = new TestEvaluator(Build) + val Right((_, count)) = eval(Build.build.flywayClean()) + assert(count > 0) + } + + 'migrate - { + val eval = new TestEvaluator(Build) + val Right((res, count)) = eval(Build.build.flywayMigrate()) + assert( + count > 0, + res == 1 + ) + } + + 'migrateAgain - { + val eval = new TestEvaluator(Build) + val Right((res, count)) = eval(Build.build.flywayMigrate()) + assert( + count > 0, + res == 0 + ) + } + + 'info - { + val eval = new TestEvaluator(Build) + val Right((_, count)) = eval(Build.build.flywayInfo()) + assert(count > 0) + } + } +}
\ No newline at end of file diff --git a/docs/pages/9 - Contrib Modules.md b/docs/pages/9 - Contrib Modules.md index 7bf29dc2..2ce591d7 100644 --- a/docs/pages/9 - Contrib Modules.md +++ b/docs/pages/9 - Contrib Modules.md @@ -60,6 +60,7 @@ object foo extends JavaModule with FlywayModule { ``` Flyway will look for migration files in `db/migration` in all resources folders by default. +This should work regardless of if you are using a mill or sbt project layout. You can then run common flyway commands like ``` |