Skip to content

Commit

Permalink
Add maven profiles and caching to speed up builds.
Browse files Browse the repository at this point in the history
  • Loading branch information
motlin committed Jun 15, 2024
1 parent 9be2022 commit d955223
Show file tree
Hide file tree
Showing 13 changed files with 622 additions and 376 deletions.
156 changes: 148 additions & 8 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,84 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/cache@v4
with:
key: maven-test-${{ hashFiles('**/pom.xml') }}
path: ~/.m2/repository
restore-keys: |
maven-test-
maven-
- run: mvn --non-recursive wrapper:wrapper -Dmaven=3.9.6
- name: Set up Java 11
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
- run: ./mvnw --threads 2C --color=always verify
env:
MAVEN_OPTS: "-Xmx1g"

- name: 'Clean Maven cache'
run: rm -rf ~/.m2/repository/org/eclipse/collections

enforcer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/cache@v4
with:
key: maven-enforcer-${{ hashFiles('**/pom.xml') }}
path: ~/.m2/repository
restore-keys: |
maven-enforcer-
maven-
- run: mvn --non-recursive wrapper:wrapper -Dmaven=3.9.6
- name: Set up Java 11
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11

- name: Run maven-enforcer-plugin
run: ./mvnw --threads 2C --color=always verify --activate-profiles maven-enforcer-plugin -DskipTests
env:
MAVEN_OPTS: "-Xmx1g"

- name: 'Clean Maven cache'
run: rm -rf ~/.m2/repository/org/eclipse/collections

dependency:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/cache@v4
with:
key: maven-dependency-${{ hashFiles('**/pom.xml') }}
path: ~/.m2/repository
restore-keys: |
maven-dependency-
maven-
- run: mvn --non-recursive wrapper:wrapper -Dmaven=3.9.6
- name: Set up Java 11
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
- run: ./mvnw --color=always verify

- name: Run maven-dependency-plugin
run: ./mvnw --threads 2C --color=always verify --activate-profiles maven-dependency-plugin -DskipTests
env:
MAVEN_OPTS: "-Xmx1g"

- name: 'Clean Maven cache'
run: rm -rf ~/.m2/repository/org/eclipse/collections

unit-tests-no-p2:
name: Unit Tests ${{ matrix.java-version }}
strategy:
Expand All @@ -29,6 +97,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/cache@v4
with:
key: maven-test-no-p2-${{ hashFiles('**/pom.xml') }}
path: ~/.m2/repository
restore-keys: |
maven-test-no-p2-
maven-test-
maven-
- run: mvn --non-recursive wrapper:wrapper -Dmaven=3.9.6
- name: Set up Java ${{ matrix.java-version }}
uses: actions/setup-java@v4
Expand All @@ -40,11 +118,24 @@ jobs:
env:
MAVEN_OPTS: "-Xmx1g"

- name: 'Clean Maven cache'
run: rm -rf ~/.m2/repository/org/eclipse/collections

unit-tests-early-access:
name: Unit Test Early Access
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/cache@v4
with:
key: maven-test-early-access-${{ hashFiles('**/pom.xml') }}
path: ~/.m2/repository
restore-keys: |
maven-test-early-access-
maven-test-
maven-
- name: Download JDK 23 from jdk.java.net
uses: oracle-actions/setup-java@v1
id: download-jdk
Expand All @@ -69,6 +160,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/cache@v4
with:
key: maven-acceptance-test-${{ hashFiles('**/pom.xml') }}
path: ~/.m2/repository
restore-keys: |
maven-acceptance-test-
maven-test-
maven-
- run: mvn --non-recursive wrapper:wrapper -Dmaven=3.9.6
- name: Set up Java 11
uses: actions/setup-java@v4
Expand All @@ -79,22 +180,37 @@ jobs:
env:
MAVEN_OPTS: "-Xmx1g"

- name: 'Clean Maven cache'
run: rm -rf ~/.m2/repository/org/eclipse/collections

performance-tests:
name: Performance Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/cache@v4
with:
key: maven-performance-test-${{ hashFiles('**/pom.xml') }}
path: ~/.m2/repository
restore-keys: |
maven-performance-test-
maven-test-
maven-
- run: mvn --non-recursive wrapper:wrapper -Dmaven=3.9.6
- name: Set up Java 11
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
- name: Performance Tests
run: ./mvnw --color=always install --projects performance-tests --also-make --activate-profiles all -DskipTests=true
- run: ./mvnw --color=always install --projects performance-tests --also-make --activate-profiles all -DskipTests=true
env:
MAVEN_OPTS: "-Xmx1g"

- name: 'Clean Maven cache'
run: rm -rf ~/.m2/repository/org/eclipse/collections

checkstyle:
name: Checkstyle
runs-on: ubuntu-latest
Expand All @@ -116,6 +232,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/cache@v4
with:
key: maven-javadoc-${{ hashFiles('**/pom.xml') }}
path: ~/.m2/repository
restore-keys: |
maven-javadoc-
maven-
- run: mvn --non-recursive wrapper:wrapper -Dmaven=3.9.6
- name: Set up Java 11
uses: actions/setup-java@v4
Expand All @@ -125,19 +250,33 @@ jobs:
- name: Build Generator
run: ./mvnw --color=always -Dsurefire.useFile=false -DskipTests -Denforcer.skip=true clean install --projects 'eclipse-collections-code-generator,eclipse-collections-code-generator-maven-plugin'
- name: JavaDoc Aggregate
run: ./mvnw --color=always -Dsurefire.useFile=false -DskipTests -Denforcer.skip=true clean javadoc:aggregate install --projects '!unit-tests,!serialization-tests,!jcstress-tests,!junit-trait-runner,!unit-tests-java8,!test-coverage'
run: ./mvnw --threads 2C --color=always --activate-profiles maven-javadoc-plugin -DskipTests javadoc:aggregate install --projects '!unit-tests,!serialization-tests,!jcstress-tests,!junit-trait-runner,!unit-tests-java8,!test-coverage'
env:
MAVEN_OPTS: "-Xmx1g"
- name: JavaDoc Jar
run: ./mvnw --color=always -Dsurefire.useFile=false -DskipTests -Denforcer.skip=true clean install javadoc:jar --projects '!unit-tests,!serialization-tests,!jcstress-tests,!junit-trait-runner,!unit-tests-java8,!test-coverage'
run: ./mvnw --threads 2C --color=always --activate-profiles maven-javadoc-plugin -DskipTests install javadoc:jar --projects '!unit-tests,!serialization-tests,!jcstress-tests,!junit-trait-runner,!unit-tests-java8,!test-coverage'
env:
MAVEN_OPTS: "-Xmx1g"

- name: 'Clean Maven cache'
run: rm -rf ~/.m2/repository/org/eclipse/collections

javadoc-early-access:
name: Javadoc Early Access
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/cache@v4
with:
key: maven-javadoc-ea-${{ hashFiles('**/pom.xml') }}
path: ~/.m2/repository
restore-keys: |
maven-javadoc-ea-
maven-javadoc-
maven-
- run: mvn --non-recursive wrapper:wrapper -Dmaven=3.9.6
- name: Download JDK 23 from jdk.java.net
uses: oracle-actions/setup-java@v1
id: download-jdk
Expand All @@ -150,11 +289,12 @@ jobs:
echo 'Outputs'
echo "steps.download-jdk.outputs.archive = ${{ steps.download-jdk.outputs.archive }}"
echo "steps.download-jdk.outputs.version = ${{ steps.download-jdk.outputs.version }}"
- run: mvn --non-recursive wrapper:wrapper -Dmaven=3.9.6
- run: java --version
- name: Build Generator
run: ./mvnw -Dsurefire.useFile=false -DskipTests -Denforcer.skip=true clean install --projects 'eclipse-collections-code-generator,eclipse-collections-code-generator-maven-plugin'
run: ./mvnw --threads 2C --color=always -DskipTests install --projects 'eclipse-collections-code-generator,eclipse-collections-code-generator-maven-plugin'
- name: Javadoc
run: ./mvnw --color=always -Dsurefire.useFile=false -DskipTests -Denforcer.skip=true clean javadoc:aggregate install --projects '!unit-tests,!serialization-tests,!jcstress-tests,!junit-trait-runner,!unit-tests-java8,!test-coverage'
run: ./mvnw --threads 2C --color=always --activate-profiles maven-javadoc-plugin -DskipTests javadoc:aggregate install --projects '!unit-tests,!serialization-tests,!jcstress-tests,!junit-trait-runner,!unit-tests-java8,!test-coverage'
env:
MAVEN_OPTS: "-Xmx2g"
- name: 'Clean Maven cache'
run: rm -rf ~/.m2/repository/org/eclipse/collections
34 changes: 0 additions & 34 deletions acceptance-tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -93,44 +93,10 @@
<artifactId>maven-surefire-plugin</artifactId>
</plugin>

<plugin>
<artifactId>maven-source-plugin</artifactId>
</plugin>

<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>

<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>

<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>analyze</id>
<goals>
<goal>analyze-only</goal>
</goals>
<configuration>
<failOnWarning>true</failOnWarning>
<ignoredUnusedDeclaredDependencies>
<ignoredUnusedDeclaredDependency>
com.google.code.findbugs:jsr305:jar
</ignoredUnusedDeclaredDependency>
<ignoredUnusedDeclaredDependency>
org.slf4j:slf4j-simple:jar
</ignoredUnusedDeclaredDependency>
<ignoredUnusedDeclaredDependency>
org.junit.jupiter:junit-jupiter-api:jar
</ignoredUnusedDeclaredDependency>
</ignoredUnusedDeclaredDependencies>
</configuration>
</execution>
</executions>
</plugin>

</plugins>
</build>

Expand Down
45 changes: 23 additions & 22 deletions eclipse-collections-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,6 @@
<artifactId>maven-surefire-plugin</artifactId>
</plugin>

<plugin>
<artifactId>maven-source-plugin</artifactId>
</plugin>

<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-maven-plugin</artifactId>
Expand All @@ -91,24 +87,6 @@
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>

<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<doctitle>Eclipse Collections API - ${project.version}</doctitle>
<windowtitle>Eclipse Collections API - ${project.version}</windowtitle>
<show>public</show>
<links>
<link>https://docs.oracle.com/en/java/javase/11/docs/api</link>
</links>
<destDir>${project.version}</destDir>
<doclint>none</doclint>
</configuration>
</plugin>

<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>clirr-maven-plugin</artifactId>
Expand All @@ -126,4 +104,27 @@

</plugins>
</build>

<profiles>
<!--region Phase 17: package-->
<profile>
<id>maven-javadoc-plugin</id>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.3</version>
<configuration>
<doctitle>Eclipse Collections API - ${project.version}</doctitle>
<windowtitle>Eclipse Collections API - ${project.version}</windowtitle>
<doclint>none</doclint>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!--endregion Phase 17: package-->
</profiles>
</project>
Loading

0 comments on commit d955223

Please sign in to comment.