Skip to content

Commit 1a9f9a0

Browse files
authored
ci: minor tweaks for the compat build pipelines (#334)
1 parent 763cf07 commit 1a9f9a0

File tree

10 files changed

+75
-36
lines changed

10 files changed

+75
-36
lines changed

.teamcity/builds/Build.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ val DEFAULT_NEO4J_VERSION = Neo4jVersion.V_2025
2121
class Build(
2222
name: String,
2323
forPullRequests: Boolean,
24+
forCompatibility: Boolean = false,
2425
neo4jVersion: Neo4jVersion = DEFAULT_NEO4J_VERSION,
2526
customizeCompletion: BuildType.() -> Unit = {}
2627
) :
@@ -44,7 +45,7 @@ class Build(
4445
"package (${java.javaVersion.version})",
4546
"package",
4647
java.javaVersion,
47-
neo4jVersion,
48+
Neo4jVersion.V_NONE,
4849
"-pl :packaging -am -DskipTests",
4950
)
5051

@@ -55,7 +56,7 @@ class Build(
5556
"build (${java.javaVersion.version})",
5657
"test-compile",
5758
java.javaVersion,
58-
neo4jVersion,
59+
Neo4jVersion.V_NONE,
5960
),
6061
)
6162
dependentBuildType(
@@ -98,7 +99,7 @@ class Build(
9899
}
99100

100101
dependentBuildType(complete)
101-
if (!forPullRequests)
102+
if (!forPullRequests && !forCompatibility)
102103
dependentBuildType(Release("${name}-release", "release", DEFAULT_JAVA_VERSION))
103104
}
104105

@@ -108,7 +109,7 @@ class Build(
108109
it.features {
109110
loginToECR()
110111
requireDiskSpace("5gb")
111-
enableCommitStatusPublisher()
112+
if (!forCompatibility) enableCommitStatusPublisher()
112113
if (forPullRequests) enablePullRequests()
113114
}
114115

.teamcity/builds/Common.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher
1111
import jetbrains.buildServer.configs.kotlin.buildFeatures.dockerRegistryConnections
1212
import jetbrains.buildServer.configs.kotlin.buildFeatures.freeDiskSpace
1313
import jetbrains.buildServer.configs.kotlin.buildFeatures.pullRequests
14+
import jetbrains.buildServer.configs.kotlin.buildSteps.DockerCommandStep
1415
import jetbrains.buildServer.configs.kotlin.buildSteps.MavenBuildStep
16+
import jetbrains.buildServer.configs.kotlin.buildSteps.dockerCommand
1517
import jetbrains.buildServer.configs.kotlin.buildSteps.maven
1618
import jetbrains.buildServer.configs.kotlin.vcs.GitVcsRoot
1719

@@ -41,6 +43,7 @@ enum class JavaVersion(val version: String, val dockerImage: String) {
4143
}
4244

4345
enum class Neo4jVersion(val version: String, val dockerImage: String) {
46+
V_NONE("", ""),
4447
V_4_4("4.4", "neo4j:4.4-enterprise"),
4548
V_4_4_DEV(
4649
"4.4-dev",
@@ -140,3 +143,12 @@ fun BuildSteps.commonMaven(
140143
init(maven)
141144
return maven
142145
}
146+
147+
fun BuildSteps.pullImage(version: Neo4jVersion): DockerCommandStep =
148+
this.dockerCommand {
149+
name = "pull neo4j test image"
150+
commandType = other {
151+
subCommand = "image"
152+
commandArgs = "pull ${version.dockerImage}"
153+
}
154+
}

.teamcity/builds/IntegrationTests.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ class IntegrationTests(
4444
}
4545

4646
steps {
47+
if (neo4jVersion != Neo4jVersion.V_NONE) {
48+
pullImage(neo4jVersion)
49+
}
50+
4751
script {
4852
scriptContent =
4953
"""

.teamcity/builds/Maven.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class Maven(
99
name: String,
1010
goals: String,
1111
javaVersion: JavaVersion,
12-
neo4jVersion: Neo4jVersion = DEFAULT_NEO4J_VERSION,
12+
neo4jVersion: Neo4jVersion,
1313
args: String? = null
1414
) :
1515
BuildType({
@@ -22,6 +22,10 @@ class Maven(
2222
}
2323

2424
steps {
25+
if (neo4jVersion != Neo4jVersion.V_NONE) {
26+
pullImage(neo4jVersion)
27+
}
28+
2529
commonMaven(javaVersion) {
2630
this.goals = goals
2731
this.runnerArgs =

.teamcity/settings.kts

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -45,38 +45,44 @@ project {
4545
this.id("compatibility")
4646
name = "compatibility"
4747

48-
Neo4jVersion.entries.forEach { neo4j ->
48+
Neo4jVersion.entries.minus(Neo4jVersion.V_NONE).forEach { neo4j ->
4949
subProject(
50-
Build(name = "${neo4j.version}", forPullRequests = false, neo4jVersion = neo4j) {
51-
triggers {
52-
vcs { enabled = false }
50+
Build(
51+
name = "${neo4j.version}",
52+
forPullRequests = false,
53+
forCompatibility = true,
54+
neo4jVersion = neo4j) {
55+
triggers {
56+
vcs { enabled = false }
5357

54-
schedule {
55-
branchFilter = "+:main"
56-
schedulingPolicy = daily {
57-
hour = 8
58-
minute = 0
58+
schedule {
59+
branchFilter = "+:main"
60+
schedulingPolicy = daily {
61+
hour = 8
62+
minute = 0
63+
}
64+
triggerBuild = always()
65+
}
5966
}
60-
triggerBuild = always()
61-
}
62-
}
6367

64-
features {
65-
notifications {
66-
buildFailedToStart = true
67-
buildFailed = true
68-
firstFailureAfterSuccess = true
69-
firstSuccessAfterFailure = true
70-
buildProbablyHanging = true
68+
features {
69+
notifications {
70+
buildFailedToStart = true
71+
buildFailed = true
72+
firstFailureAfterSuccess = true
73+
firstSuccessAfterFailure = true
74+
buildProbablyHanging = true
7175

72-
notifierSettings = slackNotifier {
73-
connection = SLACK_CONNECTION_ID
74-
sendTo = SLACK_CHANNEL
75-
messageFormat = simpleMessageFormat()
76+
branchFilter = "+:main"
77+
78+
notifierSettings = slackNotifier {
79+
connection = SLACK_CONNECTION_ID
80+
sendTo = SLACK_CHANNEL
81+
messageFormat = simpleMessageFormat()
82+
}
83+
}
7684
}
77-
}
78-
}
79-
})
85+
})
8086
}
8187
})
8288
}

common/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,11 @@
8484
<artifactId>mockito-kotlin</artifactId>
8585
<scope>test</scope>
8686
</dependency>
87+
<dependency>
88+
<groupId>org.slf4j</groupId>
89+
<artifactId>slf4j-simple</artifactId>
90+
<scope>test</scope>
91+
</dependency>
8792
<dependency>
8893
<groupId>org.testcontainers</groupId>
8994
<artifactId>junit-jupiter</artifactId>

common/src/test/kotlin/org/neo4j/connectors/kafka/data/TypesTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ class TypesTest {
7575
val neo4j: Neo4jContainer<*> =
7676
Neo4jContainer(neo4jImage())
7777
.withEnv("NEO4J_ACCEPT_LICENSE_AGREEMENT", "yes")
78+
.withExposedPorts(7687)
7879
.withoutAuthentication()
7980

8081
private lateinit var driver: Driver

source/src/test/kotlin/org/neo4j/connectors/kafka/source/Neo4jCdcTaskTest.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class Neo4jCdcTaskTest {
6363
val container: Neo4jContainer<*> =
6464
Neo4jContainer(neo4jImage())
6565
.withEnv("NEO4J_ACCEPT_LICENSE_AGREEMENT", "yes")
66+
.withExposedPorts(7687)
6667
.withoutAuthentication()
6768

6869
private lateinit var driver: Driver
@@ -88,8 +89,8 @@ class Neo4jCdcTaskTest {
8889

8990
@AfterEach
9091
fun after() {
91-
session.close()
92-
task.stop()
92+
if (this::session.isInitialized) session.close()
93+
if (this::task.isInitialized) task.stop()
9394
}
9495

9596
@BeforeEach

source/src/test/kotlin/org/neo4j/connectors/kafka/source/Neo4jQueryTaskTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class Neo4jQueryTaskTest {
6060
val neo4j: Neo4jContainer<*> =
6161
Neo4jContainer(neo4jImage())
6262
.withEnv("NEO4J_ACCEPT_LICENSE_AGREEMENT", "yes")
63+
.withExposedPorts(7687)
6364
.withoutAuthentication()
6465

6566
private lateinit var driver: Driver

testing/src/main/kotlin/org/neo4j/connectors/kafka/testing/DatabaseSupport.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,13 @@ object DatabaseSupport {
2626
if (database == DEFAULT_DATABASE) {
2727
return this
2828
}
29-
this.run(
30-
"CREATE DATABASE \$db_name OPTIONS { txLogEnrichment: '${if (withCdc) { "FULL" } else "OFF"}' } WAIT 30 SECONDS",
31-
mapOf("db_name" to database))
29+
if (withCdc) {
30+
this.run(
31+
"CREATE DATABASE \$db_name OPTIONS { txLogEnrichment: 'FULL' } WAIT 30 SECONDS",
32+
mapOf("db_name" to database))
33+
} else {
34+
this.run("CREATE DATABASE \$db_name WAIT 30 SECONDS", mapOf("db_name" to database))
35+
}
3236
return this
3337
}
3438

0 commit comments

Comments
 (0)