mirror of
https://github.com/vyos/vyos-build.git
synced 2025-10-01 20:28:40 +02:00
T6386: added caller workflows and codeowners (#634)
This commit is contained in:
parent
fad55b3e97
commit
e43017472c
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -41,7 +41,7 @@ like this
|
||||
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
||||
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
||||
<!--- The entire development process is outlined here: https://docs.vyos.io/en/latest/contributing/development.html -->
|
||||
- [ ] I have read the [**CONTRIBUTING**](https://github.com/vyos/vyos-1x/blob/current/CONTRIBUTING.md) document
|
||||
- [ ] I have read the [**CONTRIBUTING**](https://github.com/vyos/vyos-build/blob/current/CONTRIBUTING.md) document
|
||||
- [ ] I have linked this PR to one or more Phabricator Task(s)
|
||||
- [ ] My commit headlines contain a valid Task id
|
||||
- [ ] My change requires a change to the documentation
|
||||
|
||||
12
.github/labeler.yml
vendored
12
.github/labeler.yml
vendored
@ -1,12 +0,0 @@
|
||||
equuleus:
|
||||
- any:
|
||||
- base-branch: 'equuleus'
|
||||
current:
|
||||
- any:
|
||||
- base-branch: 'current'
|
||||
crux:
|
||||
- any:
|
||||
- base-branch: 'crux'
|
||||
sagitta:
|
||||
- any:
|
||||
- base-branch: 'sagitta'
|
||||
3
.github/reviewers.yml
vendored
3
.github/reviewers.yml
vendored
@ -1,3 +0,0 @@
|
||||
---
|
||||
"**/*":
|
||||
- team: reviewers
|
||||
18
.github/workflows/add-pr-labels.yml
vendored
Normal file
18
.github/workflows/add-pr-labels.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
name: Add pull request labels
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
branches:
|
||||
- current
|
||||
- equuleus
|
||||
- sagitta
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
add-pr-label:
|
||||
uses: vyos/.github/.github/workflows/add-pr-labels.yml@feature/T6349-reusable-workflows
|
||||
secrets: inherit
|
||||
21
.github/workflows/auto-author-assign.yml
vendored
21
.github/workflows/auto-author-assign.yml
vendored
@ -3,25 +3,12 @@ on:
|
||||
pull_request_target:
|
||||
types: [opened, reopened, ready_for_review, locked]
|
||||
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
# https://github.com/marketplace/actions/auto-author-assign
|
||||
assign-author:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: "Assign Author to PR"
|
||||
uses: toshimaru/auto-author-assign@v1.3.5
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# https://github.com/shufo/auto-assign-reviewer-by-files
|
||||
assign_reviewer:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Request review based on files changes and/or groups the author belongs to
|
||||
uses: shufo/auto-assign-reviewer-by-files@v1.1.4
|
||||
with:
|
||||
token: ${{ secrets.PR_ACTION_ASSIGN_REVIEWERS }}
|
||||
config: .github/reviewers.yml
|
||||
uses: vyos/.github/.github/workflows/assign-author.yml@feature/T6349-reusable-workflows
|
||||
secrets: inherit
|
||||
|
||||
18
.github/workflows/chceck-pr-message.yml
vendored
Normal file
18
.github/workflows/chceck-pr-message.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
name: Check pull request message format
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- current
|
||||
- sagitta
|
||||
- equuleus
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check-pr-title:
|
||||
uses: vyos/.github/.github/workflows/check-pr-message.yml@feature/T6349-reusable-workflows
|
||||
secrets: inherit
|
||||
14
.github/workflows/check-pr-conflicts.yml
vendored
Normal file
14
.github/workflows/check-pr-conflicts.yml
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
|
||||
name: "PR Conflicts checker"
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [synchronize]
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check-pr-conflict-call:
|
||||
uses: vyos/.github/.github/workflows/check-pr-merge-conflict.yml@feature/T6349-reusable-workflows
|
||||
secrets: inherit
|
||||
14
.github/workflows/check-stale.yml
vendored
Normal file
14
.github/workflows/check-stale.yml
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
name: "Issue and PR stale management"
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
uses: vyos/.github/.github/workflows/check-stale.yml@feature/T6349-reusable-workflows
|
||||
secrets: inherit
|
||||
16
.github/workflows/check-unused-imports.yml
vendored
Normal file
16
.github/workflows/check-unused-imports.yml
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
name: Check for unused imports using Pylint
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- current
|
||||
- sagitta
|
||||
- equuleus
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check-unused-imports:
|
||||
uses: vyos/.github/.github/workflows/check-unused-imports.yml@feature/T6349-reusable-workflows
|
||||
secrets: inherit
|
||||
23
.github/workflows/codeql.yml
vendored
Normal file
23
.github/workflows/codeql.yml
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
name: "Perform CodeQL Analysis"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "current", "sagitta", "equuleus" ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ "current" ]
|
||||
schedule:
|
||||
- cron: '22 10 * * 0'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
jobs:
|
||||
codeql-analysis-call:
|
||||
uses: vyos/.github/.github/workflows/codeql-analysis.yml@feature/T6349-reusable-workflows
|
||||
secrets: inherit
|
||||
with:
|
||||
languages: "['python']"
|
||||
12
.github/workflows/label-backport.yml
vendored
Normal file
12
.github/workflows/label-backport.yml
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
name: Mergifyio backport
|
||||
|
||||
on: [issue_comment]
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
mergifyio-backport:
|
||||
uses: vyos/.github/.github/workflows/label-backport.yml@feature/T6349-reusable-workflows
|
||||
secrets: inherit
|
||||
19
.github/workflows/linit-j2.yml
vendored
Normal file
19
.github/workflows/linit-j2.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
name: J2 Lint
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- current
|
||||
- sagitta
|
||||
- equuleus
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
j2lint:
|
||||
uses: vyos/.github/.github/workflows/lint-j2.yml@feature/T6349-reusable-workflows
|
||||
secrets: inherit
|
||||
22
.github/workflows/mergifyio_backport.yml
vendored
22
.github/workflows/mergifyio_backport.yml
vendored
@ -1,22 +0,0 @@
|
||||
name: Mergifyio backport
|
||||
|
||||
on: [issue_comment]
|
||||
|
||||
jobs:
|
||||
mergifyio_backport:
|
||||
if: github.repository == 'vyos/vyos-build'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions-ecosystem/action-regex-match@v2
|
||||
id: regex-match
|
||||
with:
|
||||
text: ${{ github.event.comment.body }}
|
||||
regex: '[Mm]ergifyio backport '
|
||||
|
||||
- uses: actions-ecosystem/action-add-labels@v1
|
||||
if: ${{ steps.regex-match.outputs.match != '' }}
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
labels: backport
|
||||
18
.github/workflows/pr-conflicts.yml
vendored
18
.github/workflows/pr-conflicts.yml
vendored
@ -1,18 +0,0 @@
|
||||
name: "PR Conflicts checker"
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [synchronize]
|
||||
|
||||
jobs:
|
||||
Conflict_Check:
|
||||
name: 'Check PR status: conflicts and resolution'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: check if PRs are dirty
|
||||
uses: eps1lon/actions-label-merge-conflict@v3
|
||||
with:
|
||||
dirtyLabel: "state: conflict"
|
||||
removeOnDirtyLabel: "state: conflict resolved"
|
||||
repoToken: "${{ secrets.GITHUB_TOKEN }}"
|
||||
commentOnDirty: "This pull request has conflicts, please resolve those before we can evaluate the pull request."
|
||||
commentOnClean: "Conflicts have been resolved. A maintainer will review the pull request shortly."
|
||||
20
.github/workflows/pull-request-labels.yml
vendored
20
.github/workflows/pull-request-labels.yml
vendored
@ -1,20 +0,0 @@
|
||||
---
|
||||
name: Add pull request labels
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
branches:
|
||||
- current
|
||||
- crux
|
||||
- equuleus
|
||||
- sagitta
|
||||
|
||||
jobs:
|
||||
add-pr-label:
|
||||
name: Add PR Labels
|
||||
runs-on: ubuntu-20.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: actions/labeler@v5.0.0
|
||||
23
.github/workflows/pull-request-message-check.yml
vendored
23
.github/workflows/pull-request-message-check.yml
vendored
@ -1,23 +0,0 @@
|
||||
---
|
||||
name: Check pull request message format
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- current
|
||||
- crux
|
||||
- equuleus
|
||||
|
||||
jobs:
|
||||
check-pr-title:
|
||||
name: Check pull request title
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
timeout-minutes: 2
|
||||
- name: Install the requests library
|
||||
run: pip3 install requests
|
||||
- name: Check the PR title
|
||||
timeout-minutes: 2
|
||||
run: |
|
||||
./scripts/check-pr-title-and-commit-messages.py '${{ github.event.pull_request.url }}'
|
||||
22
.github/workflows/stale.yml
vendored
22
.github/workflows/stale.yml
vendored
@ -1,22 +0,0 @@
|
||||
name: "Issue and PR stale management"
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'vyos/vyos-1x'
|
||||
steps:
|
||||
# Issue stale management
|
||||
- uses: actions/stale@v6
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
days-before-stale: 90
|
||||
days-before-close: -1
|
||||
stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. The issue will be reviewed by a maintainer and may be closed'
|
||||
stale-issue-label: 'state: stale'
|
||||
exempt-issue-labels: 'state: accepted, state: in-progress'
|
||||
stale-pr-message: 'This PR is stale because it has been open 30 days with no activity. The PR will be reviewed by a maintainer and may be closed'
|
||||
stale-pr-label: 'state: stale'
|
||||
exempt-pr-labels: 'state: accepted, state: in-progress'
|
||||
1
CODEOWNERS
Normal file
1
CODEOWNERS
Normal file
@ -0,0 +1 @@
|
||||
* @kumvijaya
|
||||
@ -1,54 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
|
||||
import requests
|
||||
|
||||
# Use the same regex for PR title and commit messages for now
|
||||
title_regex = r'^(([a-zA-Z\-_.]+:\s)?)T\d+:\s+[^\s]+.*'
|
||||
commit_regex = title_regex
|
||||
|
||||
|
||||
def check_pr_title(title):
|
||||
if not re.match(title_regex, title):
|
||||
print(f"PR title '{title}' does not match the required format!")
|
||||
print("Valid title example: T99999: make IPsec secure")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def check_commit_message(title):
|
||||
if not re.match(commit_regex, title):
|
||||
print(f"Commit title '{title}' does not match the required format!")
|
||||
print("Valid title example: T99999: make IPsec secure")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) < 2:
|
||||
print("Please specify pull request URL!")
|
||||
sys.exit(1)
|
||||
|
||||
# There seems to be a race condition that causes this scripts to receive
|
||||
# an incomplete PR object that is missing certain fields,
|
||||
# which causes temporary CI failures that require re-running the script
|
||||
#
|
||||
# It's probably better to add a small delay to prevent that
|
||||
time.sleep(5)
|
||||
|
||||
# Get the pull request object
|
||||
pr = requests.get(sys.argv[1]).json()
|
||||
if "title" not in pr:
|
||||
print("The PR object does not have a title field!")
|
||||
print("Did not receive a valid pull request object, please check the URL!")
|
||||
sys.exit(1)
|
||||
|
||||
check_pr_title(pr["title"])
|
||||
|
||||
# Get the list of commits
|
||||
commits = requests.get(pr["commits_url"]).json()
|
||||
for c in commits:
|
||||
# Retrieve every individual commit and check its title
|
||||
co = requests.get(c["url"]).json()
|
||||
check_commit_message(co["commit"]["message"])
|
||||
@ -18,7 +18,6 @@
|
||||
import os
|
||||
import sys
|
||||
import shutil
|
||||
import traceback
|
||||
|
||||
import vyos.utils.process
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user