81 lines
2.5 KiB
YAML
81 lines
2.5 KiB
YAML
name: Aggregate Test Status
|
|
|
|
on:
|
|
status:
|
|
|
|
permissions:
|
|
statuses: write
|
|
|
|
jobs:
|
|
aggregate:
|
|
if: >-
|
|
github.event.context == 'direct-test-completed'
|
|
&& github.event.state == 'success'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check and update aggregate status
|
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
|
with:
|
|
script: |
|
|
const sha = context.payload.sha;
|
|
|
|
const { data } = await github.rest.repos.getCombinedStatusForRef({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
ref: sha,
|
|
per_page: 100,
|
|
});
|
|
|
|
const bkStatuses = data.statuses.filter(
|
|
s => s.context.startsWith('buildkite/ci/')
|
|
);
|
|
|
|
const FASTCHECK_PREFIX = 'buildkite/ci/microscope-';
|
|
const FULL_SUITE_PREFIXES = [
|
|
'buildkite/ci/test-tube-',
|
|
'buildkite/ci/bar-chart-',
|
|
];
|
|
|
|
const fastcheck = bkStatuses.filter(
|
|
s => s.context.startsWith(FASTCHECK_PREFIX)
|
|
);
|
|
const fullSuite = bkStatuses.filter(
|
|
s => FULL_SUITE_PREFIXES.some(p => s.context.startsWith(p))
|
|
);
|
|
|
|
if (
|
|
fastcheck.length > 0
|
|
&& fastcheck.every(s => s.state === 'success')
|
|
) {
|
|
core.info(
|
|
`All ${fastcheck.length} fastcheck tests passed — updating fastcheck-passed`
|
|
);
|
|
await github.rest.repos.createCommitStatus({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
sha,
|
|
state: 'success',
|
|
context: 'fastcheck-passed',
|
|
description:
|
|
`All ${fastcheck.length} fastcheck tests passed`,
|
|
});
|
|
}
|
|
|
|
if (
|
|
fullSuite.length > 0
|
|
&& fullSuite.every(s => s.state === 'success')
|
|
) {
|
|
core.info(
|
|
`All ${fullSuite.length} full suite tests passed — updating full-suite-passed`
|
|
);
|
|
await github.rest.repos.createCommitStatus({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
sha,
|
|
state: 'success',
|
|
context: 'full-suite-passed',
|
|
description:
|
|
`All ${fullSuite.length} full suite tests passed`,
|
|
});
|
|
}
|