Skip to content

Commit ec70662

Browse files
committed
Change how we create the distro zip package
* Use the Maven Assembly Plugin instead of ant * Generate NOTICE.txt as part of the flowable-app-rest and use it in the distribution * Add Distribution Check GitHub Action
1 parent f647e4d commit ec70662

9 files changed

Lines changed: 484 additions & 584 deletions

File tree

.github/workflows/distro-check.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Distribution Check
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
env:
9+
MAVEN_ARGS: >-
10+
-B -V --no-transfer-progress
11+
-Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
12+
13+
jobs:
14+
check-distribution:
15+
name: Linux JDK 21
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v4
19+
- uses: actions/setup-java@v3
20+
with:
21+
distribution: 'zulu'
22+
java-version: 21
23+
- name: Cache Maven Repository
24+
uses: actions/cache@v3
25+
with:
26+
path: ~/.m2
27+
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
28+
restore-keys: ${{ runner.os }}-m2
29+
- name: Verify Distribution
30+
run: ./mvnw verify -Pdeploy ${MAVEN_ARGS} -T 1C -DskipTests=true -Dgpg.skip=true
31+
- name: Upload Distribution Artifact
32+
uses: actions/upload-artifact@v4
33+
with:
34+
name: flowable-distribution-artifact
35+
path: 'distro/target/flowable-*.zip'
36+
retention-days: 10
37+
if-no-files-found: 'error'

distro/build.xml

Lines changed: 0 additions & 456 deletions
This file was deleted.

distro/pom.xml

Lines changed: 226 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,226 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<groupId>org.flowable</groupId>
7+
<artifactId>flowable-dependencies</artifactId>
8+
<version>7.1.1-SNAPSHOT</version>
9+
<relativePath>../modules/flowable-dependencies</relativePath>
10+
</parent>
11+
12+
<name>Flowable Distribution</name>
13+
<artifactId>flowable-distribution</artifactId>
14+
<packaging>jar</packaging>
15+
<version>7.1.1-SNAPSHOT</version>
16+
17+
<properties>
18+
<flowable.version>7.1.1-SNAPSHOT</flowable.version>
19+
</properties>
20+
21+
<dependencies>
22+
<!--
23+
NOTE: These dependency declarations are only required to sort this project to the
24+
end of the line in the multimodule build.
25+
26+
Since we only include the child1 module in our assembly, we only need to ensure this
27+
distribution project builds AFTER that one...
28+
-->
29+
<dependency>
30+
<groupId>org.flowable</groupId>
31+
<artifactId>flowable-app-rest</artifactId>
32+
<version>${flowable.version}</version>
33+
<type>war</type>
34+
</dependency>
35+
<dependency>
36+
<groupId>org.flowable</groupId>
37+
<artifactId>flowable-camel</artifactId>
38+
<version>${flowable.version}</version>
39+
</dependency>
40+
<dependency>
41+
<groupId>org.flowable</groupId>
42+
<artifactId>flowable-cdi</artifactId>
43+
<version>${flowable.version}</version>
44+
</dependency>
45+
<dependency>
46+
<groupId>org.flowable</groupId>
47+
<artifactId>flowable-cmmn-cdi</artifactId>
48+
<version>${flowable.version}</version>
49+
</dependency>
50+
<dependency>
51+
<groupId>org.flowable</groupId>
52+
<artifactId>flowable-cxf</artifactId>
53+
<version>${flowable.version}</version>
54+
</dependency>
55+
<dependency>
56+
<groupId>org.flowable</groupId>
57+
<artifactId>flowable-jmx</artifactId>
58+
<version>${flowable.version}</version>
59+
</dependency>
60+
<dependency>
61+
<groupId>org.flowable</groupId>
62+
<artifactId>flowable-ldap-configurator</artifactId>
63+
<version>${flowable.version}</version>
64+
</dependency>
65+
<dependency>
66+
<groupId>org.flowable</groupId>
67+
<artifactId>flowable-secure-javascript</artifactId>
68+
<version>${flowable.version}</version>
69+
</dependency>
70+
<dependency>
71+
<groupId>org.flowable</groupId>
72+
<artifactId>flowable5-spring-compatibility</artifactId>
73+
<version>${flowable.version}</version>
74+
</dependency>
75+
<dependency>
76+
<groupId>org.flowable</groupId>
77+
<artifactId>flowable-osgi</artifactId>
78+
<version>${flowable.version}</version>
79+
</dependency>
80+
<dependency>
81+
<groupId>org.flowable</groupId>
82+
<artifactId>flowable-spring-boot-starter-actuator</artifactId>
83+
<version>${flowable.version}</version>
84+
</dependency>
85+
<dependency>
86+
<groupId>org.flowable</groupId>
87+
<artifactId>flowable-spring-boot-starter-integration</artifactId>
88+
<version>${flowable.version}</version>
89+
</dependency>
90+
91+
<!-- Needed here so references to Spring Test classes can be resolved during Javadoc generation -->
92+
<dependency>
93+
<groupId>org.springframework</groupId>
94+
<artifactId>spring-test</artifactId>
95+
</dependency>
96+
97+
<!-- Needed here so references to Junit Jupiter Test classes can be resolved during Javadoc generation -->
98+
<dependency>
99+
<groupId>org.junit.jupiter</groupId>
100+
<artifactId>junit-jupiter-api</artifactId>
101+
</dependency>
102+
103+
<!-- Needed here so references to Junit Test classes can be resolved during Javadoc generation -->
104+
<dependency>
105+
<groupId>junit</groupId>
106+
<artifactId>junit</artifactId>
107+
</dependency>
108+
109+
<!-- Needed here so references to Drools classes can be resolved during Javadoc generation -->
110+
<dependency>
111+
<groupId>org.drools</groupId>
112+
<artifactId>drools-core</artifactId>
113+
</dependency>
114+
115+
</dependencies>
116+
117+
<build>
118+
<plugins>
119+
<plugin>
120+
<groupId>org.apache.maven.plugins</groupId>
121+
<artifactId>maven-javadoc-plugin</artifactId>
122+
<configuration>
123+
<doctitle>Flowable ${flowable.version}</doctitle>
124+
<windowtitle>Flowable ${flowable.version}</windowtitle>
125+
<doclint>none</doclint>
126+
127+
<includeDependencySources>true</includeDependencySources>
128+
<includeTransitiveDependencySources>true</includeTransitiveDependencySources>
129+
130+
<dependencySourceIncludes>
131+
<dependencySourceInclude>org.flowable:flowable-bpmn-model</dependencySourceInclude>
132+
<dependencySourceInclude>org.flowable:flowable-engine</dependencySourceInclude>
133+
<dependencySourceInclude>org.flowable:flowable-engine-common-api</dependencySourceInclude>
134+
<dependencySourceInclude>org.flowable:flowable-cmmn-api</dependencySourceInclude>
135+
<dependencySourceInclude>org.flowable:flowable-cmmn-model</dependencySourceInclude>
136+
<dependencySourceInclude>org.flowable:flowable-dmn-api</dependencySourceInclude>
137+
<dependencySourceInclude>org.flowable:flowable-dmn-model</dependencySourceInclude>
138+
<dependencySourceInclude>org.flowable:flowable-event-registry-api</dependencySourceInclude>
139+
<dependencySourceInclude>org.flowable:flowable-task-service-api</dependencySourceInclude>
140+
<dependencySourceInclude>org.flowable:flowable-variable-service-api</dependencySourceInclude>
141+
<dependencySourceInclude>org.flowable:flowable-job-service-api</dependencySourceInclude>
142+
<dependencySourceInclude>org.flowable:flowable-identitylink-service-api</dependencySourceInclude>
143+
<dependencySourceInclude>org.flowable:flowable-eventsubscription-service-api</dependencySourceInclude>
144+
<dependencySourceInclude>org.flowable:flowable-batch-service-api</dependencySourceInclude>
145+
</dependencySourceIncludes>
146+
147+
<excludePackageNames>
148+
org.flowable.engine.impl;org.flowable.engine.impl*;
149+
</excludePackageNames>
150+
151+
<groups>
152+
<group>
153+
<title>Process Engine</title>
154+
<!--
155+
Include packages and their subpackages:
156+
org.flowable.engine
157+
-->
158+
<packages>org.flowable.engine*</packages>
159+
</group>
160+
<group>
161+
<title>CMMN Engine</title>
162+
<!--
163+
Include packages and their subpackages:
164+
org.flowable.cmmn*
165+
-->
166+
<packages>org.flowable.cmmn*</packages>
167+
</group>
168+
<group>
169+
<title>DMN Engine</title>
170+
<!--
171+
Include packages and their subpackages:
172+
org.flowable.dmn*
173+
-->
174+
<packages>org.flowable.dmn*</packages>
175+
</group>
176+
</groups>
177+
178+
<additionalDependencies>
179+
<additionalDependency>
180+
<groupId>junit</groupId>
181+
<artifactId>junit</artifactId>
182+
<version>4.13.2</version>
183+
</additionalDependency>
184+
</additionalDependencies>
185+
</configuration>
186+
<executions>
187+
<execution>
188+
<id>aggregate-javadoc</id>
189+
<phase>package</phase>
190+
<goals>
191+
<goal>javadoc</goal>
192+
</goals>
193+
</execution>
194+
</executions>
195+
</plugin>
196+
<plugin>
197+
<groupId>org.apache.maven.plugins</groupId>
198+
<artifactId>maven-assembly-plugin</artifactId>
199+
<configuration>
200+
<descriptors>
201+
<descriptor>${project.basedir}/src/main/assembly/dist.xml</descriptor>
202+
</descriptors>
203+
<finalName>flowable-${project.version}</finalName>
204+
<tarLongFileMode>posix</tarLongFileMode>
205+
<appendAssemblyId>false</appendAssemblyId>
206+
</configuration>
207+
<executions>
208+
<execution>
209+
<id>make-assembly</id>
210+
<phase>package</phase>
211+
<goals>
212+
<goal>single</goal>
213+
</goals>
214+
</execution>
215+
</executions>
216+
</plugin>
217+
<plugin>
218+
<groupId>org.apache.maven.plugins</groupId>
219+
<artifactId>maven-deploy-plugin</artifactId>
220+
<configuration>
221+
<skip>true</skip>
222+
</configuration>
223+
</plugin>
224+
</plugins>
225+
</build>
226+
</project>

distro/src/main/assembly/dist.xml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 http://maven.apache.org/xsd/assembly-2.2.0.xsd">
5+
<id>dist</id>
6+
<formats>
7+
<format>tar.gz</format>
8+
<format>zip</format>
9+
<format>dir</format>
10+
</formats>
11+
<includeBaseDirectory>false</includeBaseDirectory>
12+
13+
<moduleSets>
14+
<moduleSet>
15+
<useAllReactorProjects>true</useAllReactorProjects>
16+
<includes>
17+
<include>org.flowable:*</include>
18+
</includes>
19+
<excludes>
20+
<exclude>org.flowable:flowable-archetype-unittest:*</exclude>
21+
<exclude>org.flowable:flowable-app-rest:*</exclude>
22+
<exclude>org.flowable:flowable-distribution:*</exclude>
23+
</excludes>
24+
<binaries>
25+
<outputDirectory>libs</outputDirectory>
26+
<includeDependencies>false</includeDependencies>
27+
<unpack>false</unpack>
28+
</binaries>
29+
</moduleSet>
30+
<moduleSet>
31+
<useAllReactorProjects>true</useAllReactorProjects>
32+
<includes>
33+
<include>org.flowable:flowable-app-rest:war</include>
34+
</includes>
35+
<sources>
36+
<includeModuleDirectory>false</includeModuleDirectory>
37+
<fileSets>
38+
<fileSet>
39+
<directory>src/main/resources/static/docs/specfile</directory>
40+
<outputDirectory>docs/swagger</outputDirectory>
41+
</fileSet>
42+
<fileSet>
43+
<directory>${project.build.directory}/generated-sources/license</directory>
44+
<outputDirectory>/</outputDirectory>
45+
</fileSet>
46+
</fileSets>
47+
</sources>
48+
<binaries>
49+
<outputDirectory>wars</outputDirectory>
50+
<includeDependencies>false</includeDependencies>
51+
<unpack>false</unpack>
52+
<outputFileNameMapping>flowable-rest.war</outputFileNameMapping>
53+
</binaries>
54+
</moduleSet>
55+
</moduleSets>
56+
57+
<files>
58+
<file>
59+
<source>src/license.txt</source>
60+
<outputDirectory>/</outputDirectory>
61+
</file>
62+
<file>
63+
<source>src/readme.html</source>
64+
<outputDirectory>/</outputDirectory>
65+
</file>
66+
</files>
67+
<fileSets>
68+
<fileSet>
69+
<directory>sql</directory>
70+
<outputDirectory>database</outputDirectory>
71+
</fileSet>
72+
<fileSet>
73+
<directory>../modules/flowable-bpmn-converter/src/main/resources/org/flowable/impl/bpmn/parser</directory>
74+
<outputDirectory>docs/xsd/bpmn</outputDirectory>
75+
</fileSet>
76+
<fileSet>
77+
<directory>../modules/flowable-cmmn-converter/src/main/resources/org/flowable/impl/cmmn/parser</directory>
78+
<outputDirectory>docs/xsd/cmmn</outputDirectory>
79+
</fileSet>
80+
<fileSet>
81+
<directory>../modules/flowable-dmn-xml-converter/src/main/resources/org/flowable/impl/dmn/parser</directory>
82+
<outputDirectory>docs/xsd/dmn</outputDirectory>
83+
</fileSet>
84+
<fileSet>
85+
<directory>target/reports/apidocs</directory>
86+
<outputDirectory>docs/javadocs</outputDirectory>
87+
</fileSet>
88+
</fileSets>
89+
</assembly>

0 commit comments

Comments
 (0)