From a9891c672854200603c249bf8ba8a6dca54c673c Mon Sep 17 00:00:00 2001 From: Keith Manning Date: Mon, 12 Apr 2021 09:48:28 -0400 Subject: [PATCH] WIP: start sketching out flway migrate on apply --- src/FlywayMigrationPlugin.groovy | 9 +++++++++ test/FlywayMigrationPluginTest.groovy | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/FlywayMigrationPlugin.groovy b/src/FlywayMigrationPlugin.groovy index 217cbd05..74f327c7 100644 --- a/src/FlywayMigrationPlugin.groovy +++ b/src/FlywayMigrationPlugin.groovy @@ -8,6 +8,7 @@ class FlywayMigrationPlugin implements TerraformEnvironmentStagePlugin, Resettab public void apply(TerraformEnvironmentStage stage) { stage.decorate(TerraformEnvironmentStage.PLAN, flywayInfoClosure()) + stage.decorate(TerraformEnvironmentStage.APPLY, flywayMigrateClosure()) } public Closure flywayInfoClosure() { @@ -22,6 +23,14 @@ class FlywayMigrationPlugin implements TerraformEnvironmentStagePlugin, Resettab } } + public Closure flywayMigrateClosure() { + return { innerClosure -> + innerClosure() + + sh "echo run flyway migrate" + } + } + public Collection buildEnvironmentVariableList(env) { def list = [] if (passwordVariable) { diff --git a/test/FlywayMigrationPluginTest.groovy b/test/FlywayMigrationPluginTest.groovy index a14f17a1..f6fed9e8 100644 --- a/test/FlywayMigrationPluginTest.groovy +++ b/test/FlywayMigrationPluginTest.groovy @@ -39,6 +39,18 @@ class FlywayMigrationPluginTest { verify(stage).decorate(TerraformEnvironmentStage.PLAN, infoClosure) } + + @Test + void addsFlywayMigrateClosureOnApply() { + def migrateClosure = { -> } + def plugin = spy(new FlywayMigrationPlugin()) + doReturn(migrateClosure).when(plugin).flywayMigrateClosure() + def stage = mock(TerraformEnvironmentStage.class) + + plugin.apply(stage) + + verify(stage).decorate(TerraformEnvironmentStage.APPLY, migrateClosure) + } } @Nested