Repository navigation
Expand file tree
/
Copy pathpom.xml
More file actions
321 lines (303 loc) · 12.2 KB
/
Copy pathpom.xml
File metadata and controls
321 lines (303 loc) · 12.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- Parent is cfc-core's root/BOM pom, resolved from a Maven repository (Central or the local
.m2 cache), not from a filesystem checkout: this module is not part of cfc-core's reactor.
The empty <relativePath/> is required; it disables Maven's default lookup of ../pom.xml,
so the build does not depend on where this checkout sits. -->
<parent>
<groupId>com.cloudforgeci</groupId>
<artifactId>cfc-core</artifactId>
<!-- Tracks cfc-core's latest published SNAPSHOT — kept current by sync-versions.yml. -->
<version>3.3.11-SNAPSHOT</version>
<relativePath/>
</parent>
<artifactId>cloudforge-localstack</artifactId>
<!-- Kept in lockstep with the parent's version (unlike e.g. cloudforge-manager-deployment,
which has its own independent release cadence): this module was a reactor member of
cfc-core until it moved to its own repository, and stays released alongside it on the same
version number, just via a <parent> reference instead of reactor membership. -->
<version>3.3.11-SNAPSHOT</version>
<packaging>jar</packaging>
<name>CloudForge LocalStack</name>
<description>LocalStack local deployment adapter, deployer, and pipeline for CloudForge templates</description>
<!-- Overrides the parent's <url>/<scm>, which point at CloudForgeCI/cfc-core. <licenses>/
<developers> are shared across CloudForgeCI modules and stay inherited. -->
<url>https://github.com/CloudForgeCI/cloudforge-localstack</url>
<scm>
<connection>scm:git:https://github.com/CloudForgeCI/cloudforge-localstack.git</connection>
<developerConnection>scm:git:ssh://git@github.com/CloudForgeCI/cloudforge-localstack.git</developerConnection>
<url>https://github.com/CloudForgeCI/cloudforge-localstack</url>
</scm>
<properties>
<aws.sdk.version>2.57.3</aws.sdk.version>
<testcontainers.version>1.21.0</testcontainers.version>
</properties>
<!-- Maven doesn't check the Central Portal's snapshots URL by default — needed to resolve the
parent POM above while cfc-core is on a -SNAPSHOT version. Release (non-SNAPSHOT) builds
never use this repository. -->
<repositories>
<repository>
<id>central-snapshots</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases><enabled>false</enabled></releases>
<!-- updatePolicy=always: without it, Maven caches a "not found" or stale result for a
whole day (the default), and that negative cache persists across CI runs along with
the rest of ~/.m2. A build that runs before cfc-core's own matching SNAPSHOT finishes
publishing can then fail every build for the rest of the day even once it exists. -->
<snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.cloudforgeci</groupId>
<artifactId>cloudforge-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>cloudformation</artifactId>
<version>${aws.sdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
<version>${aws.sdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>cognitoidentityprovider</artifactId>
<version>${aws.sdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>secretsmanager</artifactId>
<version>${aws.sdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>ecs</artifactId>
<version>${aws.sdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>ssm</artifactId>
<version>${aws.sdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>rds</artifactId>
<version>${aws.sdk.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<version>${testcontainers.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>ec2</artifactId>
<version>${aws.sdk.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>elasticloadbalancingv2</artifactId>
<version>${aws.sdk.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>route53</artifactId>
<version>${aws.sdk.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>acm</artifactId>
<version>${aws.sdk.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>localstack</excludedGroups>
</configuration>
</plugin>
<!-- Coverage check deferred until deployer/runtime tests expand -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>check</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>localstack</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration combine.self="override">
<!-- Run full module test suite (unit + @Tag("localstack") integration) -->
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Publishes to Maven Central via the Central Portal. Defined here rather than inherited:
cfc-core's flatten-maven-plugin strips <profiles> from the POM it publishes, so the
parent resolved from Central has no "release" profile. Same shape as
cloudforge-ministack's own copy of this profile. -->
<profile>
<id>release</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.12.0</version>
<configuration>
<doclint>none</doclint>
<failOnError>false</failOnError>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals><goal>jar</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<!-- Matches cfc-core root pom's pin (see its comment for why 3.2.8); keep them in
sync. -->
<version>3.2.8</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals><goal>sign</goal></goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- Flattens the parent-inherited license/developers and this module's own
unversioned dependencies (e.g. cloudforge-core, left to the parent's
dependencyManagement) into the published pom. Central's validator rejects a pom it
would have to resolve a parent to make sense of, same as it rejects one missing
those fields outright. Same shape as cfc-core's own copy of this plugin. -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.8.0</version>
<configuration>
<updatePomFile>true</updatePomFile>
<flattenMode>bom</flattenMode>
<flattenedPomFilename>${project.build.directory}/${project.artifactId}-${project.version}.pom</flattenedPomFilename>
</configuration>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals><goal>flatten</goal></goals>
</execution>
<execution>
<id>flatten.clean</id>
<phase>clean</phase>
<goals><goal>clean</goal></goals>
</execution>
</executions>
</plugin>
<!-- Central Portal publisher (replaces old OSSRH/staging) -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.12.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>validated</waitUntil>
<centralSnapshotsUrl>https://central.sonatype.com/repository/maven-snapshots/</centralSnapshotsUrl>
</configuration>
</plugin>
<!-- Attach sources -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals><goal>jar</goal></goals>
</execution>
</executions>
</plugin>
<!-- Attach javadocs -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution><id>attach-javadocs</id><goals><goal>jar</goal></goals></execution>
</executions>
<configuration><failOnError>false</failOnError></configuration>
</plugin>
<!-- GPG signing (Central requires .asc) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals><goal>sign</goal></goals>
</execution>
</executions>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg><arg>loopback</arg>
</gpgArguments>
<homedir>${env.GPG_HOMEDIR}</homedir>
</configuration>
</plugin>
<!-- Skip the default deploy plugin, which would otherwise fail with "repository element
was not specified in the POM inside distributionManagement"; publishing is done by
central-publishing-maven-plugin. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration><skip>true</skip></configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>