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 May 22, 2024
1 parent 2e6e942 commit 2ad4ef3
Show file tree
Hide file tree
Showing 13 changed files with 618 additions and 368 deletions.
153 changes: 147 additions & 6 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,15 @@ 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
Expand All @@ -21,6 +30,65 @@ jobs:
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 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

- name: Run maven-dependency-plugin
run: ./mvnw 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 install --projects performance-tests --also-make --activate-profiles all -DskipTests=true
- run: ./mvnw 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,26 +232,49 @@ 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
with:
distribution: 'zulu'
java-version: 11
- name: JavaDoc Aggregate
run: ./mvnw -Dsurefire.useFile=false -DskipTests -Denforcer.skip=true clean install javadoc:aggregate --projects '!unit-tests,!serialization-tests,!jcstress-tests,!junit-trait-runner,!unit-tests-java8,!test-coverage,!p2-repository,!org.eclipse.collections:org.eclipse.collections'
run: ./mvnw verify --activate-profiles maven-javadoc-plugin -Dsurefire.useFile=false -DskipTests javadoc:aggregate --projects '!unit-tests,!serialization-tests,!jcstress-tests,!junit-trait-runner,!unit-tests-java8,!test-coverage,!p2-repository,!org.eclipse.collections:org.eclipse.collections'
env:
MAVEN_OPTS: "-Xmx1g"
- name: JavaDoc Jar
run: ./mvnw -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,!p2-repository,!org.eclipse.collections:org.eclipse.collections'
run: ./mvnw verify --activate-profiles maven-javadoc-plugin -Dsurefire.useFile=false -DskipTests javadoc:jar --projects '!unit-tests,!serialization-tests,!jcstress-tests,!junit-trait-runner,!unit-tests-java8,!test-coverage,!p2-repository,!org.eclipse.collections:org.eclipse.collections'
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 @@ -148,9 +287,11 @@ 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: Javadoc
run: ./mvnw -Dsurefire.useFile=false -DskipTests -Denforcer.skip=true clean install javadoc:aggregate --projects '!unit-tests,!serialization-tests,!jcstress-tests,!junit-trait-runner,!unit-tests-java8,!test-coverage,!p2-repository,!org.eclipse.collections:org.eclipse.collections'
run: ./mvnw verify --activate-profiles maven-javadoc-plugin -Dsurefire.useFile=false -DskipTests javadoc:aggregate --projects '!unit-tests,!serialization-tests,!jcstress-tests,!junit-trait-runner,!unit-tests-java8,!test-coverage,!p2-repository,!org.eclipse.collections:org.eclipse.collections'
env:
MAVEN_OPTS: "-Xmx2g"

- name: 'Clean Maven cache'
run: rm -rf ~/.m2/repository/org/eclipse/collections
31 changes: 0 additions & 31 deletions acceptance-tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -87,41 +87,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>
</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 @@ -59,10 +59,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 @@ -81,24 +77,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 @@ -116,4 +94,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 2ad4ef3

Please sign in to comment.