1818
1919jobs :
2020 unit-test :
21- name : Java ${{ matrix.java-version }}
21+ name : Java ${{ matrix.java-version }} - ${{ matrix.group }}
2222 timeout-minutes : 150
2323 runs-on : ubuntu-24.04
2424 strategy :
2525 # max-parallel: 1 ## used to force sequential vs. concurrent
2626 fail-fast : false
2727 matrix :
2828 java-version : [ 8, 11, 17, 21, 25 ]
29+ group : [flaky, nonForkedTests, forkedTests]
2930 steps :
3031 - name : Checkout Java agent
3132 uses : actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # pin@v4
@@ -43,23 +44,23 @@ jobs:
4344 - name : Setup environment
4445 uses : ./.github/actions/setup-environment
4546
46- - name : Run unit tests that do not require a forked JVM (attempt 1)
47+ - name : Run unit tests (attempt 1)
4748 id : run_tests_1
4849 continue-on-error : true
4950 timeout-minutes : 45
50- run : ./gradlew $GRADLE_OPTIONS test -x :functional_test:test -x :newrelic-scala3-api:test -x :newrelic-scala-api:test -x :newrelic-scala-cats-api:test -x :newrelic-cats-effect3-api:test -x :newrelic-scala-monix-api:test -x :newrelic-scala-zio-api:test -x :newrelic-scala-zio2-api:test -Ptest${{ matrix.java-version }} -PnoInstrumentation -PnonForkedTests --continue
51+ run : ./gradlew $GRADLE_OPTIONS test -x :functional_test:test -x :newrelic-scala3-api:test -x :newrelic-scala-api:test -x :newrelic-scala-cats-api:test -x :newrelic-cats-effect3-api:test -x :newrelic-scala-monix-api:test -x :newrelic-scala-zio-api:test -x :newrelic-scala-zio2-api:test -Ptest${{ matrix.java-version }} -PnoInstrumentation -P${{ matrix.group }} --continue
5152
52- - name : Run unit tests that do not require a forked JVM (attempt 2)
53+ - name : Run unit tests (attempt 2)
5354 id : run_tests_2
5455 continue-on-error : true
5556 timeout-minutes : 45
5657 if : steps.run_tests_1.outcome == 'failure'
57- run : ./gradlew $GRADLE_OPTIONS test -x :functional_test:test -x :newrelic-scala3-api:test -x :newrelic-scala-api:test -x :newrelic-scala-cats-api:test -x :newrelic-cats-effect3-api:test -x :newrelic-scala-monix-api:test -x :newrelic-scala-zio-api:test -x :newrelic-scala-zio2-api:test -Ptest${{ matrix.java-version }} -PnoInstrumentation -PnonForkedTests --continue
58+ run : ./gradlew $GRADLE_OPTIONS test -x :functional_test:test -x :newrelic-scala3-api:test -x :newrelic-scala-api:test -x :newrelic-scala-cats-api:test -x :newrelic-cats-effect3-api:test -x :newrelic-scala-monix-api:test -x :newrelic-scala-zio-api:test -x :newrelic-scala-zio2-api:test -Ptest${{ matrix.java-version }} -PnoInstrumentation -P${{ matrix.group }} --continue
5859
59- - name : Run unit tests that do not require a forked JVM (attempt 3)
60+ - name : Run unit tests (attempt 3)
6061 timeout-minutes : 45
6162 if : steps.run_tests_2.outcome == 'failure'
62- run : ./gradlew $GRADLE_OPTIONS test -x :functional_test:test -x :newrelic-scala3-api:test -x :newrelic-scala-api:test -x :newrelic-scala-cats-api:test -x :newrelic-cats-effect3-api:test -x :newrelic-scala-monix-api:test -x :newrelic-scala-zio-api:test -x :newrelic-scala-zio2-api:test -Ptest${{ matrix.java-version }} -PnoInstrumentation -PnonForkedTests --continue
63+ run : ./gradlew $GRADLE_OPTIONS test -x :functional_test:test -x :newrelic-scala3-api:test -x :newrelic-scala-api:test -x :newrelic-scala-cats-api:test -x :newrelic-cats-effect3-api:test -x :newrelic-scala-monix-api:test -x :newrelic-scala-zio-api:test -x :newrelic-scala-zio2-api:test -Ptest${{ matrix.java-version }} -PnoInstrumentation -P${{ matrix.group }} --continue
6364
6465 - name : Upload coverage to Codecov
6566 if : matrix.java-version == '17'
@@ -73,63 +74,16 @@ jobs:
7374 if : matrix.java-version == '17'
7475 uses : actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # pin@v4
7576 with :
76- name : non-forked -jacoco-reports-java-${{ matrix.java-version }}
77+ name : ${{ matrix.group }} -jacoco-reports-java-${{ matrix.java-version }}
7778 path : |
7879 **/build/reports/jacoco/**
7980
80- - name : Capture build reports (non forked)
81+ - name : Capture build reports
8182 # If previous step fails, run this step regardless
8283 if : failure()
8384 uses : actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # pin@v4
8485 with :
85- name : non-forked-tests-results-java-${{ matrix.java-version }}
86- # The regex for the path below will capture unit test HTML reports generated by gradle for all
87- # related modules: (agent-bridge, newrelic-java, newrelic-api, etc).
88- # However, it's critical that the previous build step does a ./gradlew clean or the regex will capture test reports
89- # that were leftover in unrelated modules for functional and instrumentation tests.
90- path : |
91- **/build/reports/tests/*
92-
93- - name : Run unit tests that require a forked JVM (attempt 1)
94- id : run_forked_tests_1
95- continue-on-error : true
96- timeout-minutes : 45
97- run : ./gradlew $GRADLE_OPTIONS test -x :functional_test:test -x :newrelic-scala3-api:test -x :newrelic-scala-api:test -x :newrelic-scala-cats-api:test -x :newrelic-cats-effect3-api:test -x :newrelic-scala-monix-api:test -x :newrelic-scala-zio-api:test -x :newrelic-scala-zio2-api:test -Ptest${{ matrix.java-version }} -PnoInstrumentation -PforkedTests --continue
98-
99- - name : Run unit tests that require a forked JVM (attempt 2)
100- id : run_forked_tests_2
101- continue-on-error : true
102- timeout-minutes : 45
103- if : steps.run_forked_tests_1.outcome == 'failure'
104- run : ./gradlew $GRADLE_OPTIONS test -x :functional_test:test -x :newrelic-scala3-api:test -x :newrelic-scala-api:test -x :newrelic-scala-cats-api:test -x :newrelic-cats-effect3-api:test -x :newrelic-scala-monix-api:test -x :newrelic-scala-zio-api:test -x :newrelic-scala-zio2-api:test -Ptest${{ matrix.java-version }} -PnoInstrumentation -PforkedTests --continue
105-
106- - name : Run unit tests that require a forked JVM (attempt 3)
107- id : run_forked_tests_3
108- timeout-minutes : 45
109- if : steps.run_forked_tests_2.outcome == 'failure'
110- run : ./gradlew $GRADLE_OPTIONS test -x :functional_test:test -x :newrelic-scala3-api:test -x :newrelic-scala-api:test -x :newrelic-scala-cats-api:test -x :newrelic-cats-effect3-api:test -x :newrelic-scala-monix-api:test -x :newrelic-scala-zio-api:test -x :newrelic-scala-zio2-api:test -Ptest${{ matrix.java-version }} -PnoInstrumentation -PforkedTests --continue
111-
112- - name : Upload coverage to Codecov
113- if : matrix.java-version == '17'
114- uses : codecov/codecov-action@6d798873df2b1b8e5846dba6fb86631229fbcb17 # pin@v4
115- with :
116- token : ${{ secrets.CODECOV_TOKEN }}
117- files : ' **/build/reports/jacoco/test/jacocoTestReport.xml'
118- fail_ci_if_error : false # default is false, but being explicit about what to expect.
119-
120- - name : Capture Jacoco reports
121- if : matrix.java-version == '17'
122- uses : actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # pin@v4
123- with :
124- name : forked-jacoco-reports-java-${{ matrix.java-version }}
125- path : |
126- **/build/reports/jacoco/**
127-
128- - name : Capture build reports (forked)
129- if : failure()
130- uses : actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # pin@v4
131- with :
132- name : forked-tests-results-java-${{ matrix.java-version }}
86+ name : ${{ matrix.group }}-tests-results-java-${{ matrix.java-version }}
13387 # The regex for the path below will capture unit test HTML reports generated by gradle for all
13488 # related modules: (agent-bridge, newrelic-java, newrelic-api, etc).
13589 # However, it's critical that the previous build step does a ./gradlew clean or the regex will capture test reports
@@ -150,12 +104,12 @@ jobs:
150104 git config --global user.name "GitHub Actions Bot"
151105 git config --global user.email "[email protected] " 152106
153- - name : Download test reports Java ${{ matrix.java-version }}
107+ - name : Download test reports Java ${{ matrix.java-version }} - ${{ matrix.group }}
154108 if : ${{ failure() }}
155109 uses : actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # pin@v4
156110 with :
157- name : unit-tests-results-java-${{ matrix.java-version }}
158- path : gh-pages/reports/${{ inputs.agent-ref }}/${{ github.run_id }}/unit-tests-results-java-${{ matrix.java-version }}
111+ name : unit-tests-results-java-${{ matrix.java-version }}-${{ matrix.group }}
112+ path : gh-pages/reports/${{ inputs.agent-ref }}/${{ github.run_id }}/unit-tests-results-java-${{ matrix.java-version }}-${{ matrix.group }}
159113
160114 - name : Set up Python
161115 if : ${{ failure() }}
@@ -168,7 +122,7 @@ jobs:
168122 if : ${{ failure() }}
169123 run : |
170124 pip install beautifulsoup4
171- python gh-pages/utils/writeTestsFailuresPage.py gh-pages/reports/${{ inputs.agent-ref }}/${{ github.run_id }}/unit-tests-results-java-${{ matrix.java-version }}
125+ python gh-pages/utils/writeTestsFailuresPage.py gh-pages/reports/${{ inputs.agent-ref }}/${{ github.run_id }}/unit-tests-results-java-${{ matrix.java-version }}-${{ matrix.group }}
172126
173127 - name : Commit and push test reports to gh-pages
174128 if : ${{ failure() }}
0 commit comments