forked from AliceO2Group/O2Physics
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'AliceO2Group:master' into master
- Loading branch information
Showing
191 changed files
with
8,669 additions
and
5,996 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
# You can see all available properties here: https://github.com/bridgecrewio/checkov#configuration-using-a-config-file | ||
quiet: true | ||
skip-check: | ||
- CKV_DOCKER_2 | ||
- CKV_GHA_7 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
name: Clean PR checks | ||
|
||
'on': | ||
workflow_dispatch: | ||
inputs: | ||
pr: | ||
description: PR number in this repo to be cleaned | ||
type: string # can't use number here | ||
required: true | ||
message: | ||
description: Human-readable message displayed on the new pending status | ||
type: string | ||
required: false | ||
default: '' | ||
|
||
# Warning: GitHub limits the total number of inputs to 10, so a maximum of | ||
# 8 checks is allowed here! | ||
# Warning: the check_* keys are magic and must consist of the string | ||
# "check_" followed by the applicable check name exactly. The | ||
# "description" field is only the human-readable label for the input. | ||
'check_build/O2Physics/o2/macOS-arm': | ||
description: build/O2Physics/o2/macOS-arm | ||
type: boolean | ||
default: true | ||
|
||
'check_build/O2Physics/o2/macOS': | ||
description: build/O2Physics/o2/macOS | ||
type: boolean | ||
default: true | ||
|
||
'check_build/O2Physics/o2': | ||
description: build/O2Physics/o2 | ||
type: boolean | ||
default: true | ||
|
||
permissions: {} | ||
|
||
jobs: | ||
clean: | ||
name: Clean PR checks | ||
uses: alisw/ali-bot/.github/workflows/clean-pr-checks.yml@master | ||
with: | ||
owner: ${{ github.event.repository.owner.login }} | ||
repo: ${{ github.event.repository.name }} | ||
pr: ${{ github.event.inputs.pr }} | ||
message: ${{ github.event.inputs.message }} | ||
checks: ${{ toJSON(github.event.inputs) }} | ||
permissions: | ||
pull-requests: read # to get last commit for pr (octokit/graphql-action) | ||
statuses: write # for set-github-status |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,8 @@ | ||
--- | ||
name: "Pull Request Labeler" | ||
on: | ||
- pull_request_target | ||
'on': | ||
pull_request_target: | ||
types: [opened, synchronize, reopened, edited] | ||
permissions: read-all | ||
|
||
jobs: | ||
|
@@ -10,8 +11,112 @@ jobs: | |
permissions: | ||
contents: read | ||
pull-requests: write | ||
outputs: | ||
labels: ${{ steps.labeler.outputs.all-labels }} | ||
steps: | ||
- uses: actions/labeler@v5 | ||
- name: Label the PR | ||
id: labeler | ||
uses: actions/labeler@v5 | ||
with: | ||
repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
sync-labels: true | ||
title-prefix-checker: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
pull-requests: write | ||
needs: labeler | ||
steps: | ||
- name: Check the PR title prefix | ||
id: check-prefix | ||
env: | ||
title: ${{ github.event.pull_request.title }} | ||
labels: ${{ needs.labeler.outputs.labels }} | ||
shell: python | ||
run: | | ||
import os | ||
import re | ||
import sys | ||
title = os.environ['title'] | ||
labels = os.environ['labels'] | ||
tags = { | ||
"infrastructure": "Infrastructure", | ||
"common": "Common", | ||
"alice3": "ALICE3", | ||
"pwgcf": "PWGCF", | ||
"pwgdq": "PWGDQ", | ||
"pwgem": "PWGEM", | ||
"pwghf": "PWGHF", | ||
"pwgje": "PWGJE", | ||
"pwglf": "PWGLF", | ||
"pwgud": "PWGUD", | ||
"dpg": "DPG", | ||
"trigger": "Trigger", | ||
"tutorial": "Tutorial", | ||
} | ||
print(f'PR title: "{title}"') | ||
print(f'PR labels: "{labels}"') | ||
tags_relevant = [tags[label] for label in tags if label in labels.split(",")] | ||
print("Relevant title tags:", ",".join(tags_relevant)) | ||
passed = True | ||
prefix_good = ",".join(tags_relevant) | ||
prefix_good = f"[{prefix_good}] " | ||
print(f"Generated prefix: {prefix_good}") | ||
replace_title = 0 | ||
title_new = title | ||
# If there is a prefix which contains a known tag, check it for correct tags, and reformat it if needed. | ||
# If there is a prefix which does not contain any known tag, add the tag prefix. | ||
# If there is no prefix, add the tag prefix. | ||
if match := re.match(r"\[?(\w[\w, /\+-]+)[\]:]+ ", title): | ||
prefix_title = match.group(1) | ||
words_prefix_title = prefix_title.replace(",", " ").replace("/", " ").split() | ||
title_stripped = title[len(match.group()) :] | ||
print(f'PR title prefix: "{prefix_title}" -> tags: {words_prefix_title}') | ||
print(f'Stripped PR title: "{title_stripped}"') | ||
if any(tag in words_prefix_title for tag in tags.values()): | ||
for tag in tags.values(): | ||
if tag in tags_relevant and tag not in words_prefix_title: | ||
print(f'::error::Relevant tag "{tag}" not found in the prefix of the PR title.') | ||
passed = False | ||
if tag not in tags_relevant and tag in words_prefix_title: | ||
print(f'::error::Irrelevant tag "{tag}" found in the prefix of the PR title.') | ||
passed = False | ||
# Format a valid prefix. | ||
if passed: | ||
prefix_good = ",".join(w for w in prefix_title.replace(",", " ").split() if w) | ||
prefix_good = f"[{prefix_good}] " | ||
print(f"::notice::Reformatted prefix: {prefix_good}") | ||
if match.group() != prefix_good: | ||
replace_title = 1 | ||
title_new = prefix_good + title_stripped | ||
else: | ||
print("::warning::No known tags found in the prefix.") | ||
if tags_relevant: | ||
replace_title = 1 | ||
title_new = prefix_good + title | ||
else: | ||
print("::warning::No valid prefix found in the PR title.") | ||
if tags_relevant: | ||
replace_title = 1 | ||
title_new = prefix_good + title | ||
if not passed: | ||
print("::error::Problems were found in the PR title prefix.") | ||
print('::notice::Use the form "tags: title" or "[tags] title".') | ||
sys.exit(1) | ||
if replace_title: | ||
print("::warning::The PR title prefix with tags needs to be added or adjusted.") | ||
print(f'::warning::New title: "{title_new}".') | ||
else: | ||
print("::notice::The PR title prefix is fine.") | ||
with open(os.environ["GITHUB_OUTPUT"], "a", encoding="utf-8") as fh: | ||
print(f"replace={replace_title}", file=fh) | ||
print(f"title={title_new}", file=fh) | ||
- name: Fix the PR title prefix | ||
if: ${{ steps.check-prefix.outputs.replace == 1 }} | ||
uses: the-wright-jamie/[email protected] | ||
with: | ||
repo-token: "${{ secrets.GITHUB_TOKEN }}" | ||
base-branch-regex: master | ||
error-on-fail: false | ||
title-template: "${{ steps.check-prefix.outputs.title }}" | ||
title-update-action: replace |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.