Files
slsDetectorPackage/.github/workflows/pr_edit_trigger.yaml
T
maliakal_d b93520bba5
Build and Deploy on local RHEL9 / build (push) Successful in 2m0s
Build on RHEL9 docker image / build (push) Successful in 4m7s
Build and Deploy on local RHEL8 / build (push) Successful in 5m8s
Build on RHEL8 docker image / build (push) Successful in 5m5s
Run Simulator Tests on local RHEL9 / build (push) Failing after 10m14s
Run Simulator Tests on local RHEL8 / build (push) Successful in 23m30s
Dev/pr automation 5 (#1564)
* check the presence of release notes

* release notes found should not include heading

* debugging

* typo

* typo

* trim out no release note checkbox as well

* refactored to only read current section

* minor

* release note now triggered after detector labels, removed no relaes note checkbox, also checking if its developing detector label only, then also release note not required, adding a fake ai assisted releae note if found locally, removing adding release notelabel

* minor

* print

* to run everytim

* typo

* ai assisted

* into steps

* coimment out release notes workflow

* read permissions

* copilot

* removed ai assisted notes

* refactored
2026-09-21 11:26:19 +02:00

183 lines
4.9 KiB
YAML

# This workflow is triggered when opening/reopening PR, editing the PR description or changing labels. It ignores unrelated label changes. It runs PR type validation and if it succeeds, it runs PR milestone, release notes, file version and detector labels workflow in parallel.
name: PR Edit Trigger
on:
pull_request:
types:
- opened
- reopened
- edited
- labeled
- unlabeled
permissions:
pull-requests: write
contents: read
models: read
jobs:
check-pr-trigger:
name: Check PR Trigger
runs-on: ubuntu-latest
outputs:
require_validation: ${{ steps.check.outputs.require_validation }}
file_label_change: ${{ steps.check.outputs.file_label_change }}
pr_edited: ${{ steps.check.outputs.pr_edited }}
steps:
- name: Check PR Trigger
id: check
uses: actions/github-script@v8
with:
script: |
let requireValidation = true;
let fileLabelChange = false;
/*
* If triggered by label change, ignore unrelated labels.
*/
const action = context.payload.action;
const prEdited = action === 'edited';
if (action === 'labeled' || action === 'unlabeled') {
const changedLabel = context.payload.label?.name;
core.info(
`Changed Label: ${changedLabel}`
);
const relevantLabels = [
'Feature',
'Bug Fix',
'Infrastructure',
'Breaking API'
];
if (!relevantLabels.includes(changedLabel)) {
requireValidation = false;
}
// File Major requires Breaking API label
const fileLabels = [
'File Major',
'File Minor',
'Breaking API'
];
if (fileLabels.includes(changedLabel)) {
fileLabelChange = true;
}
}
core.setOutput(
'require_validation',
requireValidation.toString()
);
core.setOutput(
'file_label_change',
fileLabelChange.toString()
);
core.setOutput(
'pr_edited',
prEdited.toString()
);
if (requireValidation) {
core.info('PR type validation: Required.');
} else {
core.info('PR type validation: Not required - Unrelated label.');
}
if (fileLabelChange) {
core.info('File label or Breaking API: Changed.');
} else {
core.info('File label or Breaking API: No Change.');
}
validate-pr-type:
needs: check-pr-trigger
if: ${{ needs.check-pr-trigger.outputs.require_validation == 'true' }}
uses: ./.github/workflows/pr_type_validation.yaml
with:
pr_number: ${{ github.event.pull_request.number }}
permissions:
pull-requests: write
contents: read
milestone:
needs:
- check-pr-trigger
- validate-pr-type
if: >-
${{
always() &&
(
needs.check-pr-trigger.outputs.require_validation == 'false' ||
needs.validate-pr-type.result == 'success'
)
}}
uses: ./.github/workflows/pr_milestone.yaml
with:
pr_number: ${{ github.event.pull_request.number }}
permissions:
pull-requests: write
contents: read
detector-labels:
needs:
- check-pr-trigger
- validate-pr-type
if: >-
${{
always() &&
(
needs.check-pr-trigger.outputs.require_validation == 'false' ||
needs.validate-pr-type.result == 'success'
)
}}
uses: ./.github/workflows/pr_detector_labels.yaml
with:
pr_number: ${{ github.event.pull_request.number }}
permissions:
pull-requests: write
issues: read
release-notes:
needs:
- check-pr-trigger
- detector-labels
if: >-
${{
always() &&
(
needs.check-pr-trigger.outputs.require_validation == 'false' ||
needs.detector-labels.result == 'success'
)
}}
uses: ./.github/workflows/pr_release_notes.yaml
with:
pr_number: ${{ github.event.pull_request.number }}
permissions:
pull-requests: read
contents: read
file-version:
needs:
- check-pr-trigger
- validate-pr-type
if: >-
${{
always() &&
(
needs.check-pr-trigger.outputs.file_label_change == 'true'
) ||
(
needs.check-pr-trigger.outputs.require_validation == 'false' ||
needs.validate-pr-type.result == 'success'
)
}}
uses: ./.github/workflows/pr_file_version.yaml
with:
pr_number: ${{ github.event.pull_request.number }}
permissions:
pull-requests: write
contents: read