51
51
import io .airbyte .commons .version .AirbyteVersion ;
52
52
import io .airbyte .test .airbyte_test_container .AirbyteTestContainer ;
53
53
import java .io .File ;
54
+ import java .io .FileInputStream ;
54
55
import java .net .URISyntaxException ;
55
56
import java .nio .file .Path ;
56
57
import java .util .HashMap ;
57
58
import java .util .HashSet ;
58
59
import java .util .List ;
59
60
import java .util .Map ;
61
+ import java .util .Properties ;
60
62
import java .util .Set ;
61
63
import java .util .function .Consumer ;
62
64
import org .junit .jupiter .api .Test ;
@@ -77,15 +79,29 @@ public class MigrationAcceptanceTest {
77
79
78
80
@ Test
79
81
public void testAutomaticMigration () throws Exception {
80
- final String targetVersion = "0.29.16-alpha" ;
82
+ // default to version in env file but can override it.
83
+ final String targetVersion ;
84
+ if (System .getenv ("MIGRATION_TEST_VERSION" ) != null ) {
85
+ targetVersion = System .getenv ("MIGRATION_TEST_VERSION" );
86
+ } else {
87
+ final Properties prop = new Properties ();
88
+ prop .load (new FileInputStream (ENV_FILE ));
89
+ targetVersion = prop .getProperty ("VERSION" );
90
+ }
81
91
LOGGER .info ("Using version: {} as target version" , targetVersion );
82
92
83
93
firstRun ();
84
94
secondRun (targetVersion );
85
95
}
86
96
87
97
private Consumer <String > logConsumerForServer (Set <String > expectedLogs ) {
88
- return logLine -> expectedLogs .removeIf (logLine ::contains );
98
+ return logLine -> expectedLogs .removeIf (entry -> {
99
+ if (logLine .contains ("Migrating from version" )) {
100
+ System .out .println ("logLine = " + logLine );
101
+ System .out .println ("logLine = " + logLine );
102
+ }
103
+ return logLine .contains (entry );
104
+ });
89
105
}
90
106
91
107
@ SuppressWarnings ("UnstableApiUsage" )
@@ -117,6 +133,7 @@ private String targetVersionWithoutPatch(String targetVersion) {
117
133
return AirbyteVersion .versionWithoutPatch (targetVersion ).getVersion ();
118
134
}
119
135
136
+ @ SuppressWarnings ("UnstableApiUsage" )
120
137
private void secondRun (String targetVersion ) throws Exception {
121
138
final Set <String > logsToExpect = new HashSet <>();
122
139
logsToExpect .add ("Version: " + targetVersion );
@@ -128,16 +145,14 @@ private void secondRun(String targetVersion) throws Exception {
128
145
logsToExpect .add ("Migrating from version: 0.22.0-alpha to version 0.23.0-alpha." );
129
146
logsToExpect .add ("Migrations complete. Now on version: " + targetVersionWithoutPatch (targetVersion ));
130
147
131
- final File dockerComposeFile = Path .of (System .getProperty ("user.dir" )).getParent ().resolve ("docker-compose.yaml" ).toFile ();
132
- final AirbyteTestContainer airbyteTestContainer = new AirbyteTestContainer .Builder (dockerComposeFile )
148
+ final AirbyteTestContainer airbyteTestContainer = new AirbyteTestContainer .Builder (new File (Resources .getResource ("docker-compose.yaml" ).toURI ()))
133
149
.setEnv (ENV_FILE )
134
150
// override to use test mounts.
135
151
.setEnvVariable ("DATA_DOCKER_MOUNT" , "airbyte_data_migration_test" )
136
152
.setEnvVariable ("DB_DOCKER_MOUNT" , "airbyte_db_migration_test" )
137
153
.setEnvVariable ("WORKSPACE_DOCKER_MOUNT" , "airbyte_workspace_migration_test" )
138
154
.setEnvVariable ("LOCAL_ROOT" , "/tmp/airbyte_local_migration_test" )
139
155
.setEnvVariable ("LOCAL_DOCKER_MOUNT" , "/tmp/airbyte_local_migration_test" )
140
- .setEnvVariable ("VERSION" , targetVersion )
141
156
.setLogListener ("server" , logConsumerForServer (logsToExpect ))
142
157
.build ();
143
158
0 commit comments