Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add maven profiles and caching to speed up builds. #1590

Merged
merged 1 commit into from
Jun 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 --color=always --activate-profiles maven-javadoc-plugin -DskipTests -Denforcer.skip=true clean 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 --color=always --activate-profiles maven-javadoc-plugin -DskipTests -Denforcer.skip=true clean 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