mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-09-03 16:40:43 +02:00
129 lines
3.4 KiB
YAML
129 lines
3.4 KiB
YAML
# test branch
|
|
name: PR Edit Trigger
|
|
|
|
on:
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- reopened
|
|
- edited
|
|
- labeled
|
|
- unlabeled
|
|
|
|
permissions:
|
|
pull-requests: write
|
|
contents: 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 }}
|
|
|
|
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;
|
|
|
|
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;
|
|
}
|
|
|
|
const fileLabels = [
|
|
'File Major',
|
|
'File Minor',
|
|
];
|
|
if (fileLabels.includes(changedLabel)) {
|
|
fileLabelChange = true;
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Set workflow outputs.
|
|
*/
|
|
core.setOutput(
|
|
'require_validation',
|
|
requireValidation.toString()
|
|
);
|
|
core.setOutput(
|
|
'file_label_change',
|
|
fileLabelChange.toString()
|
|
);
|
|
|
|
/*
|
|
* Log what will run.
|
|
*/
|
|
if (requireValidation) {
|
|
core.info('PR type validation required.');
|
|
} else {
|
|
core.info('PR type validation not required: Unrelated label.');
|
|
}
|
|
if (fileLabelChange) {
|
|
core.info('File version label change detected.');
|
|
} else {
|
|
core.info('No file version label change detected.');
|
|
}
|
|
|
|
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: validate-pr-type
|
|
uses: ./.github/workflows/pr_milestone.yaml
|
|
with:
|
|
pr_number: ${{ github.event.pull_request.number }}
|
|
permissions:
|
|
pull-requests: write
|
|
contents: read
|
|
|
|
detector-labels:
|
|
needs: validate-pr-type
|
|
uses: ./.github/workflows/pr_detector_labels.yaml
|
|
with:
|
|
pr_number: ${{ github.event.pull_request.number }}
|
|
permissions:
|
|
pull-requests: write
|
|
issues: read
|
|
|
|
file-version:
|
|
needs: check-pr-trigger
|
|
if: ${{ needs.check-pr-trigger.outputs.file_label_change == 'true' }}
|
|
uses: ./.github/workflows/pr_file_version.yaml
|
|
with:
|
|
pr_number: ${{ github.event.pull_request.number }}
|
|
permissions:
|
|
pull-requests: write
|
|
contents: read
|
|
|