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

Improvements for CI in GitHub Actions #1787

Merged
merged 189 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
189 commits
Select commit Hold shift + click to select a range
2dbec90
install parallel_tests
jagthedrummer Nov 27, 2024
5b14db3
configure db connections for parallel_tests
jagthedrummer Nov 27, 2024
ecf9605
mostly working...
jagthedrummer Nov 27, 2024
3fd9af9
Try using paralell_tests to split test files in CI
jagthedrummer Nov 27, 2024
4ba37e6
run parallel_tests from the right directory
jagthedrummer Nov 27, 2024
f20f04d
don't try to use a log that's not there
jagthedrummer Nov 27, 2024
2a70abc
what's in tmp/starter
jagthedrummer Nov 27, 2024
f140295
typo
jagthedrummer Nov 27, 2024
93aca21
try this
jagthedrummer Nov 27, 2024
8be019a
moare debugging
jagthedrummer Nov 27, 2024
a2392a7
don't require a runtime file, just use it if/when we have one
jagthedrummer Nov 27, 2024
d13e487
try recording runtime data
jagthedrummer Nov 27, 2024
42434c5
maybe this
jagthedrummer Nov 27, 2024
e6deb0b
apparently comments in the middle of the command confuses GHA
jagthedrummer Nov 27, 2024
553d711
linter
jagthedrummer Nov 27, 2024
74880b3
try setting group correctly
jagthedrummer Nov 27, 2024
f3a67c9
maybe this way
jagthedrummer Nov 27, 2024
05f71ee
linter
jagthedrummer Nov 27, 2024
b4e0cdb
linter
jagthedrummer Nov 27, 2024
4186274
what's in that log
jagthedrummer Nov 27, 2024
d59213a
Group by runtime if we can, and ensure the runtime log is there
jagthedrummer Dec 2, 2024
1357ae2
Upload the runtime log artifact
jagthedrummer Dec 2, 2024
145ec52
Start on combining runtime logs
jagthedrummer Dec 2, 2024
2f1360c
Add to the right pipeline, and actually combine the runtime logs
jagthedrummer Dec 2, 2024
23db8bd
Make it dependent on actually running tests
jagthedrummer Dec 2, 2024
33e1947
rename the job
jagthedrummer Dec 2, 2024
73e66bc
give the job a name
jagthedrummer Dec 2, 2024
3775039
try using a cache to keep the runtime log around
jagthedrummer Dec 2, 2024
550b482
only restore the runtime log on test nodes
jagthedrummer Dec 2, 2024
9661b76
combine files properly
jagthedrummer Dec 2, 2024
2b99af5
trigger ci
jagthedrummer Dec 2, 2024
c6a6240
show line count of combined log
jagthedrummer Dec 2, 2024
504cc0e
combine the logs to the right place
jagthedrummer Dec 2, 2024
85e45ec
trigger ci
jagthedrummer Dec 2, 2024
3c3c5bb
what if we run multiple parallel test runners on each CI node
jagthedrummer Dec 2, 2024
acb67bc
oops
jagthedrummer Dec 2, 2024
2903afc
try this for parallel tests
jagthedrummer Dec 2, 2024
f6c80cb
that didn't work...
jagthedrummer Dec 2, 2024
6710a74
what if we don't specify db stuff so rigidly
jagthedrummer Dec 2, 2024
8b41af0
try to get db connections working with multiple runners per node
jagthedrummer Dec 2, 2024
f671b76
specify localhost in CI
jagthedrummer Dec 2, 2024
aa5c9d8
4 groups, 2 per node
jagthedrummer Dec 2, 2024
82cdf55
what if we had twelve runners
jagthedrummer Dec 2, 2024
7c720ef
what does parallel:setup do without a number
jagthedrummer Dec 2, 2024
e764b47
maybe 16 then
jagthedrummer Dec 2, 2024
1b1e738
try to get failures reported correctly
jagthedrummer Dec 2, 2024
521b452
maybe this will actually catch failures
jagthedrummer Dec 2, 2024
095e428
maybe this
jagthedrummer Dec 2, 2024
5b41c87
can't pass both...
jagthedrummer Dec 2, 2024
08c5fb2
does this help
jagthedrummer Dec 2, 2024
004ae02
what if this is causing problems
jagthedrummer Dec 2, 2024
35f092b
maybe bundle exec always exits cleanly
jagthedrummer Dec 2, 2024
1891ffa
try simplifying this
jagthedrummer Dec 2, 2024
4db029b
I bet that was it
jagthedrummer Dec 2, 2024
fd686c8
don't need that now
jagthedrummer Dec 2, 2024
fed1a59
maybe if we generate a fake secret...
jagthedrummer Dec 2, 2024
9ce4c49
Fix a test for parallel use
jagthedrummer Dec 2, 2024
231fc3e
Fix for mailers in tests with parallel_test
jagthedrummer Dec 2, 2024
e6aa020
trigger ci
jagthedrummer Dec 2, 2024
87e645f
trigger ci
jagthedrummer Dec 3, 2024
f789586
try reporting a single summary for all tests
jagthedrummer Dec 3, 2024
4c3d16f
report summaries individually to make sure things match
jagthedrummer Dec 3, 2024
2786055
making a test fail to make sure the combined summary is reported corr…
jagthedrummer Dec 3, 2024
dd384a5
fix the failing test
jagthedrummer Dec 3, 2024
e7bbffd
Combined summary for the internal pipeline
jagthedrummer Dec 3, 2024
e78bd9f
Unique names for capturing summary artifacts
jagthedrummer Dec 3, 2024
5692b36
try combining coverage data
jagthedrummer Dec 3, 2024
fa4a08c
quote a string with a colon in it
jagthedrummer Dec 3, 2024
1b140a1
maybe this will work
jagthedrummer Dec 3, 2024
3409177
linter
jagthedrummer Dec 3, 2024
d0bcbff
what's in the coverage directory
jagthedrummer Dec 3, 2024
9bb68e0
have to explicitly enable hidden files
jagthedrummer Dec 3, 2024
f065c30
try to get it working
jagthedrummer Dec 3, 2024
cdcc076
don't error out if the coverage dir isn't there yet
jagthedrummer Dec 3, 2024
cb9b33a
need bundle exec
jagthedrummer Dec 3, 2024
e0b1e6f
try showing a summary of coverage on the PR
jagthedrummer Dec 3, 2024
4c66104
try to point to the right thing
jagthedrummer Dec 3, 2024
fb137b7
make sure these have data in them
jagthedrummer Dec 3, 2024
a74bd38
what does the default formatter do
jagthedrummer Dec 3, 2024
cde22bc
knock down the minimum coverage
jagthedrummer Dec 3, 2024
af8270f
try to get better info from the simplecov action
jagthedrummer Dec 3, 2024
741d2a4
knock down the per file coverage limit
jagthedrummer Dec 3, 2024
e841da1
try using the official standardrb workflow
jagthedrummer Dec 3, 2024
bcdd1a4
try to get coverage data reporting more reliably
jagthedrummer Dec 3, 2024
738bf6b
try to keep minitest reporters from clobbering each other
jagthedrummer Dec 3, 2024
e9b906d
make the linter happy
jagthedrummer Dec 3, 2024
7695031
try to see if all the test reports are there
jagthedrummer Dec 3, 2024
5042cb2
is it more consistent with just one runner per node
jagthedrummer Dec 3, 2024
7d99ad9
what if we just run one test node
jagthedrummer Dec 3, 2024
c66bfb9
try two runner on one node
jagthedrummer Dec 3, 2024
6d37d49
maybe the brackwets cause problems
jagthedrummer Dec 3, 2024
f6932d0
try this for more parallelism
jagthedrummer Dec 3, 2024
6e6f893
not sure we need to serialize stdout
jagthedrummer Dec 3, 2024
c06953b
try 12
jagthedrummer Dec 3, 2024
e5b0f92
Where does the simplecov report end up if the internal workflow isn't…
jagthedrummer Dec 3, 2024
a316e87
try this
jagthedrummer Dec 3, 2024
59408b7
re-enable these
jagthedrummer Dec 3, 2024
7b5a3fa
what if we make our own summary
jagthedrummer Dec 4, 2024
139bd48
derp
jagthedrummer Dec 4, 2024
c322516
ignore all report dirs created by parallel_tests
jagthedrummer Dec 4, 2024
4267edc
Try conveying some actual info
jagthedrummer Dec 4, 2024
642239e
Try to add some file info
jagthedrummer Dec 4, 2024
f04bd7d
fix
jagthedrummer Dec 4, 2024
8f454bd
clean it up a bit
jagthedrummer Dec 4, 2024
b407bb0
moar data
jagthedrummer Dec 4, 2024
fa5336a
what if we put the file table in a details block
jagthedrummer Dec 4, 2024
6b53a4f
hmm
jagthedrummer Dec 4, 2024
31dcec5
maybe r needs to come first
jagthedrummer Dec 4, 2024
d66a32b
maybe this will do it
jagthedrummer Dec 4, 2024
82eb5e0
clean up
jagthedrummer Dec 4, 2024
d24fb0a
some clean up and polish
jagthedrummer Dec 4, 2024
f83d640
more cleanup and polish
jagthedrummer Dec 4, 2024
3d488b6
upload coverage data for superscaffolding tests
jagthedrummer Dec 4, 2024
141cb41
maybe we can generate two reports to get better data
jagthedrummer Dec 4, 2024
ccec424
still need to require it
jagthedrummer Dec 4, 2024
4ad07d5
Add group info
jagthedrummer Dec 4, 2024
d0a17a7
oops
jagthedrummer Dec 4, 2024
581ecae
only show 10 files
jagthedrummer Dec 4, 2024
b6707bd
can we dynamically build the matrix
jagthedrummer Dec 4, 2024
8e77f86
oops
jagthedrummer Dec 4, 2024
c2bcfc6
does this work
jagthedrummer Dec 4, 2024
eaa08b8
try to calculate number of test runners per node dynamically based on…
jagthedrummer Dec 4, 2024
374ed7c
simplify the script a bit
jagthedrummer Dec 4, 2024
42556da
does this arrangement change anything
jagthedrummer Dec 4, 2024
72a1179
Revert "does this arrangement change anything"
jagthedrummer Dec 4, 2024
c971633
Can we extract the matrix calculation into a workflow...
jagthedrummer Dec 4, 2024
27d7837
are we getting output
jagthedrummer Dec 4, 2024
b189f54
oops
jagthedrummer Dec 4, 2024
dd5d730
add runs-on
jagthedrummer Dec 4, 2024
b0a447e
that doesn't work
jagthedrummer Dec 4, 2024
10a11b0
env vars are always strings
jagthedrummer Dec 4, 2024
f4e7a7e
those too
jagthedrummer Dec 4, 2024
1792dee
maybe this
jagthedrummer Dec 4, 2024
8b7686f
can we use a workflow from another repo
jagthedrummer Dec 5, 2024
401f357
maybe if we specify a branch
jagthedrummer Dec 5, 2024
d9f7b2c
try using it as an action, not a workflow
jagthedrummer Dec 5, 2024
3236461
fix
jagthedrummer Dec 5, 2024
dd1455b
need to add a ref
jagthedrummer Dec 5, 2024
b0a3494
try to connect the outputs
jagthedrummer Dec 5, 2024
c5e5f5b
slim things down a bit
jagthedrummer Dec 5, 2024
1f794f9
make sure things change as expected
jagthedrummer Dec 5, 2024
e3b79e2
use the right variable name
jagthedrummer Dec 5, 2024
37abbe7
trigger CI
jagthedrummer Dec 5, 2024
9799274
some clean up
jagthedrummer Dec 5, 2024
731d9ff
use v1
jagthedrummer Dec 5, 2024
898048c
can't pass an empty with block apparently
jagthedrummer Dec 5, 2024
7f87944
explicitly pass the number of runners per node to parallel setup
jagthedrummer Dec 5, 2024
164aabf
centralize knowledge about where artifacts live in the action
jagthedrummer Dec 5, 2024
2211a9f
bug fix
jagthedrummer Dec 5, 2024
84ddd7d
what if we add an environment
jagthedrummer Dec 5, 2024
c9cc833
nope
jagthedrummer Dec 5, 2024
a7f8016
break a couple of tests
jagthedrummer Dec 5, 2024
22d4343
unbreak the tests
jagthedrummer Dec 5, 2024
435bfeb
rename this
jagthedrummer Dec 5, 2024
4a763b7
make the linter fail
jagthedrummer Dec 5, 2024
7a77ffb
clean up
jagthedrummer Dec 5, 2024
7357ddc
make the linter happy again
jagthedrummer Dec 5, 2024
45348cf
delete artifacts after we have them
jagthedrummer Dec 5, 2024
20b1f09
configure active storage for parallel tests
jagthedrummer Dec 5, 2024
2f2b5ef
delete artifacts last, so that retries are maybe possible
jagthedrummer Dec 5, 2024
8a5f61f
try uploading the full coverage report as an artifact
jagthedrummer Dec 5, 2024
6f89f83
Add a convenience script for viewing the coverage report
jagthedrummer Dec 5, 2024
a1316db
link to the coverage report in the summary
jagthedrummer Dec 5, 2024
c6653f0
Revert "Add a convenience script for viewing the coverage report"
jagthedrummer Dec 5, 2024
29b724a
Add a readme to the report dir
jagthedrummer Dec 5, 2024
dc26451
try to get things laying out better
jagthedrummer Dec 6, 2024
a756cf3
what's going on...
jagthedrummer Dec 6, 2024
b562430
try to get gem groups in core
jagthedrummer Dec 6, 2024
b038504
use the same path as bin/hack
jagthedrummer Dec 9, 2024
f0bf81d
linter
jagthedrummer Dec 9, 2024
a8ebb25
don't fail the workflow if deleting an artifact goes sideways
jagthedrummer Dec 9, 2024
ef75c37
can we get some coverage data about super scaffolding
jagthedrummer Dec 9, 2024
59a4530
try to get better coverage info
jagthedrummer Dec 9, 2024
37e0d2d
does this help
jagthedrummer Dec 9, 2024
aee6d2f
that seems to cause problems
jagthedrummer Dec 9, 2024
f8b2a09
hmm, maybe it's eager load and not the other thing
jagthedrummer Dec 9, 2024
7e5b89a
linter
jagthedrummer Dec 9, 2024
e213f15
maybe we should always upload artifacts
jagthedrummer Dec 9, 2024
25ad011
that seems to prevent it from reporting sometimes
jagthedrummer Dec 9, 2024
a310440
always combine and clean up
jagthedrummer Dec 9, 2024
96804a6
maybe a recycle symbol instead of the peek-a-boo guy
jagthedrummer Dec 9, 2024
6659bf5
oops
jagthedrummer Dec 9, 2024
87eafe9
we need this to fail if super scaffolding fails
jagthedrummer Dec 9, 2024
d09fa99
let's not do that for now
jagthedrummer Dec 10, 2024
f028a32
some clean up
jagthedrummer Dec 10, 2024
6fb16e2
remove the old parallel-ci script that we don't use anymore
jagthedrummer Dec 10, 2024
1fbcb5d
cleanup
jagthedrummer Dec 10, 2024
c8c22b3
fix for grouping
jagthedrummer Dec 10, 2024
12a6e63
don't include avo in coverage reports
jagthedrummer Dec 10, 2024
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
152 changes: 152 additions & 0 deletions .github/workflows/_combine_coverage_data.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
# This workflow will download simplecov artifacts created by parallel_test and combine
# them into one set of test coverage data.
#
# This workflow is meant to be called by other workflows.
name: "♻️ SimpleCov Report"
on:
workflow_call:

jobs:
combine_runtime_logs:
name: "♻️ "
runs-on: ubuntu-latest
env:
RAILS_ENV: test
# Manually export your local RAILS_MASTER_KEY if using the credentials system.
# RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
BUNDLE_JOBS: 2
BUNDLE_RETRY: 3
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
path: tmp/starter

- name: Install Ruby and gems
uses: ruby/setup-ruby@v1
with:
working-directory: tmp/starter
bundler-cache: true

- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: tmp/starter/coverage_artifacts
pattern: test_coverage_*.log
merge-multiple: false

- name: List downloaded artifacts
run: ls -alR tmp/starter/coverage_artifacts
shell: bash

- name: Cat an artifact
run: cat tmp/starter/coverage_artifacts/test_coverage_*.log/.resultset.json
shell: bash

- name: Combine Coverage Data With Groups
working-directory: tmp/starter
run: "bundle exec rake coverage:report_with_groups[coverage_artifacts/**/.resultset.json]"
shell: bash

- name: Copy coverage.json to coverage_with_groups.json
run: cp tmp/starter/coverage/coverage.json tmp/starter/coverage/coverage_with_groups.json
continue-on-error: true
shell: bash

- name: Combine Coverage Data
working-directory: tmp/starter
run: "bundle exec rake coverage:report[coverage_artifacts/**/.resultset.json]"
shell: bash

- name: List coverage dir
run: ls -alR tmp/starter/coverage
continue-on-error: true
shell: bash

- name: Upload Coverage Report
uses: actions/upload-artifact@v4
id: upload-coverage-report
with:
name: test_coverage_report
path: tmp/starter/coverage
include-hidden-files: true
retention-days: 1

- uses: actions/github-script@v7
id: create-summary
name: Summary
env:
COVERAGE_REPORT_LINK: ${{ steps.upload-coverage-report.outputs.artifact-url }}
with:
script: |
try {
const fs = require('fs')
const jsonString = fs.readFileSync('tmp/starter/coverage/coverage.json')
var coverageData = JSON.parse(jsonString)

const groupJsonString = fs.readFileSync('tmp/starter/coverage/coverage_with_groups.json')
var groupCoverageData = JSON.parse(groupJsonString)

var files = coverageData.files.sort((a, b) => a.covered_percent - b.covered_percent);
var numberOfFilesToShow = 10
files = files.slice(0,numberOfFilesToShow)

var fileDetails = []
fileDetails.push(`<details>`)
fileDetails.push(`<summary>File Coverage Details</summary>`)
fileDetails.push(` `)
fileDetails.push(`${numberOfFilesToShow} files with the least coverage`)
fileDetails.push(` `)
fileDetails.push(`| File | Coverage |`)
fileDetails.push(`| ---- | -------- |`)
for (const file of files) {
var filePath = file.filename.split("tmp/starter/")[1];
var fileCoverage = file.covered_percent.toFixed(1)
fileDetails.push(`| ${filePath} | ${fileCoverage}% |`)
}
fileDetails.push(` `)
fileDetails.push(`</details>`)

var groups = groupCoverageData.groups;
var groupNames = Object.keys(groups)

var groupDetails = []
groupDetails.push(`<details>`)
groupDetails.push(`<summary>Group Coverage Details</summary>`)
groupDetails.push(` `)
groupDetails.push(`| Group | Coverage |`)
groupDetails.push(`| ---- | -------- |`)
for (const groupName of groupNames) {
var groupCoverage = groups[groupName].lines.covered_percent.toFixed(1)
groupDetails.push(`| ${groupName} | ${groupCoverage}% |`)
}
groupDetails.push(` `)
groupDetails.push(`</details>`)

core.summary.addRaw(`${coverageData.metrics.covered_percent.toFixed(1)}% Covered`,true)
core.summary.addRaw(`${coverageData.files.length} Files`,true)
core.summary.addRaw(`${coverageData.metrics.covered_strength.toFixed(1)} Coverage Strength`,true)
core.summary.addRaw(`${coverageData.metrics.covered_lines} Lines Covered (of ${coverageData.metrics.total_lines})`,true)
core.summary.addRaw(` `,true)

core.summary.addRaw(fileDetails.join("\r\n"), true)
core.summary.addRaw(` `,true)
core.summary.addRaw(groupDetails.join("\r\n"), true)
core.summary.addRaw(` `,true)

core.summary.addLink('For the next 24 hours you can download a full coverage report.', process.env.COVERAGE_REPORT_LINK)
} catch(err) {
core.summary.addRaw("Error while reading or parsing the coverage JSON", true)
core.summary.addRaw(err.toString(), true)
core.error("Error while reading or parsing the coverage JSON")
core.setFailed(err)
}
core.summary.write()

- name: Delete artifacts
uses: geekyeggo/delete-artifact@v5
with:
name: test_coverage_*.log
failOnError: false


71 changes: 71 additions & 0 deletions .github/workflows/_combine_runtime_logs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# This workflow will download runtime log artifacts created by parallel_test and combine
# them into one log that is then used by subsequent test runs to help split up test files
# more efficiently into groups.
#
# This workflow is meant to be called by other workflows.
name: "🪵 Combine Runtime Logs for Parallel Tests"
on:
workflow_call:

jobs:
combine_runtime_logs:
name: "🪵"
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
path: tmp/starter

- name: runtime log cache
uses: actions/cache@v4
with:
path: |
tmp/starter/tmp/parallel_runtime_test.log
key: runtime-cache-${{ runner.os }}-${{ github.ref }}-${{ github.sha }}
restore-keys: |
runtime-cache-${{ runner.os }}-${{ github.ref }}-${{ github.sha }}
runtime-cache-${{ runner.os }}-${{ github.ref }}-
runtime-cache-${{ runner.os }}-

- name: ls tmp/starter/tmp
run: ls -al tmp/starter/tmp
shell: bash

- name: Touch Parallel Tests Runtime Log
run: touch tmp/parallel_runtime_test.log
working-directory: tmp/starter
shell: bash

- name: cat runtime log
run: cat tmp/starter/tmp/parallel_runtime_test.log
shell: bash

- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
pattern: parallel_runtime_test_*.log
merge-multiple: false

- name: List downloaded artifacts
run: ls -R artifacts
shell: bash

- name: Combine Runtime Logs
run: cat artifacts/**/parallel_runtime_test.log > tmp/starter/tmp/parallel_runtime_test.log
shell: bash

- name: Cat the combined log
run: cat tmp/starter/tmp/parallel_runtime_test.log
shell: bash

- name: Line count the combined log
run: wc -l tmp/starter/tmp/parallel_runtime_test.log
shell: bash

- name: Delete artifacts
uses: geekyeggo/delete-artifact@v5
with:
name: parallel_runtime_test_*.log
failOnError: false
45 changes: 45 additions & 0 deletions .github/workflows/_combine_summary_logs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# This workflow will download test summary artifacts created by parallel_test and combine
# them into one summary report about test pass/fail status.
#
# This workflow is meant to be called by other workflows.
name: "📊 Test Results"
on:
workflow_call:

jobs:
combine_summary_logs:
name: "📊"
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
path: tmp/starter

- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
pattern: test_summary_*.log
merge-multiple: false

- name: List downloaded artifacts
run: ls -R artifacts
shell: bash

- name: Count Test Result Files
run: ls -alR artifacts | grep TEST | wc -l
shell: bash

- name: Test Summary
uses: test-summary/action@v2
with:
paths: "artifacts/**/TEST-*.xml"
if: always()

- name: Delete artifacts
uses: geekyeggo/delete-artifact@v5
with:
name: test_summary_*.log
failOnError: false
25 changes: 22 additions & 3 deletions .github/workflows/_run_super_scaffolding_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,19 @@ on:
default: false

jobs:
# NOTE: This is here just to make the workflow visualization layout better.
# Without it the layout is really bad and confusing.
calculate_matrix:
name: 🤷 Fake Matrix
runs-on: ubuntu-latest
steps:
- name: Do Nothing
run: echo "This is a useless step that just helps things look nicer..."
shell: bash
test:
name: "🏗️"
runs-on: ubuntu-latest
needs: calculate_matrix
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -139,8 +149,17 @@ jobs:
if: ${{ strategy.job-index == 5 }}
working-directory: tmp/starter

- name: Test Summary
uses: test-summary/action@v2
- name: Upload Test Summary Logs
uses: actions/upload-artifact@v4
if: always()
with:
paths: "tmp/starter/test/reports/**/TEST-*.xml"
name: test_summary_super_scaffolding_${{ strategy.job-index }}_${{ inputs.use-core-repo }}.log
path: tmp/starter/test/reports/**/TEST-*.xml

- name: Upload Test Coverage Data
uses: actions/upload-artifact@v4
if: always()
with:
name: test_coverage_${{ strategy.job-index }}_${{ inputs.use-core-repo }}.log
path: tmp/starter/coverage/.resultset.json
include-hidden-files: true
Loading
Loading