diff options
author | kumvijaya <kumvijaya@gmail.com> | 2024-05-24 01:03:47 +0530 |
---|---|---|
committer | kumvijaya <kumvijaya@gmail.com> | 2024-05-24 01:03:47 +0530 |
commit | e43f6f6a521360322f65c82a5534d9da14566c28 (patch) | |
tree | ea688a12c95ab967d67be4d6af3dfb09a247206c | |
parent | cf5a239844f9d2df91d3ce0bf7dbe371bd407e35 (diff) | |
download | vyos-build-e43f6f6a521360322f65c82a5534d9da14566c28.tar.gz vyos-build-e43f6f6a521360322f65c82a5534d9da14566c28.zip |
T6386: added reusable workflows and codeowners
-rw-r--r-- | .github/PULL_REQUEST_TEMPLATE.md | 6 | ||||
-rw-r--r-- | .github/labeler.yml | 12 | ||||
-rw-r--r-- | .github/reviewers.yml | 3 | ||||
-rw-r--r-- | .github/workflows/add-pr-labels.yml | 18 | ||||
-rw-r--r-- | .github/workflows/auto-author-assign.yml | 21 | ||||
-rw-r--r-- | .github/workflows/chceck-pr-message.yml | 18 | ||||
-rw-r--r-- | .github/workflows/check-pr-conflicts.yml | 14 | ||||
-rw-r--r-- | .github/workflows/check-stale.yml | 14 | ||||
-rw-r--r-- | .github/workflows/check-unused-imports.yml | 16 | ||||
-rw-r--r-- | .github/workflows/codeql.yml | 23 | ||||
-rw-r--r-- | .github/workflows/label-backport.yml | 12 | ||||
-rw-r--r-- | .github/workflows/linit-j2.yml | 19 | ||||
-rw-r--r-- | .github/workflows/pr-conflicts.yml | 18 | ||||
-rw-r--r-- | .github/workflows/pull-request-labels.yml | 20 | ||||
-rw-r--r-- | CODEOWNERS | 1 | ||||
-rwxr-xr-x | scripts/check-pr-title-and-commit-messages.py | 54 |
16 files changed, 142 insertions, 127 deletions
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 87eee2e7..8c71c80d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -18,8 +18,8 @@ the box, please use [x] - [ ] Other (please describe): ## Related Task(s) -<!-- All submitted PRs must be linked to a Task on Phabricator. --> -* https://vyos.dev/Txxxx +<!-- optional: Link to related other tasks on Phabricator. --> +<!-- * https://vyos.dev/Txxxx --> ## Component(s) name <!-- A rather incomplete list of components: ethernet, wireguard, bgp, mpls, ldp, l2tp, dhcp ... --> @@ -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 diff --git a/.github/labeler.yml b/.github/labeler.yml deleted file mode 100644 index e0b9ee43..00000000 --- a/.github/labeler.yml +++ /dev/null @@ -1,12 +0,0 @@ -equuleus: - - any: - - base-branch: 'equuleus' -current: - - any: - - base-branch: 'current' -crux: - - any: - - base-branch: 'crux' -sagitta: - - any: - - base-branch: 'sagitta' diff --git a/.github/reviewers.yml b/.github/reviewers.yml deleted file mode 100644 index a1647d20..00000000 --- a/.github/reviewers.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -"**/*": - - team: reviewers diff --git a/.github/workflows/add-pr-labels.yml b/.github/workflows/add-pr-labels.yml new file mode 100644 index 00000000..ffb04f33 --- /dev/null +++ b/.github/workflows/add-pr-labels.yml @@ -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 diff --git a/.github/workflows/auto-author-assign.yml b/.github/workflows/auto-author-assign.yml index 13bfd9bb..c3696ea4 100644 --- a/.github/workflows/auto-author-assign.yml +++ b/.github/workflows/auto-author-assign.yml @@ -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 diff --git a/.github/workflows/chceck-pr-message.yml b/.github/workflows/chceck-pr-message.yml new file mode 100644 index 00000000..f4d30b28 --- /dev/null +++ b/.github/workflows/chceck-pr-message.yml @@ -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 diff --git a/.github/workflows/check-pr-conflicts.yml b/.github/workflows/check-pr-conflicts.yml new file mode 100644 index 00000000..0c659e6e --- /dev/null +++ b/.github/workflows/check-pr-conflicts.yml @@ -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 diff --git a/.github/workflows/check-stale.yml b/.github/workflows/check-stale.yml new file mode 100644 index 00000000..59d25a11 --- /dev/null +++ b/.github/workflows/check-stale.yml @@ -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 diff --git a/.github/workflows/check-unused-imports.yml b/.github/workflows/check-unused-imports.yml new file mode 100644 index 00000000..324a63e9 --- /dev/null +++ b/.github/workflows/check-unused-imports.yml @@ -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 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 00000000..a4fc39e2 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -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']" diff --git a/.github/workflows/label-backport.yml b/.github/workflows/label-backport.yml new file mode 100644 index 00000000..9192b818 --- /dev/null +++ b/.github/workflows/label-backport.yml @@ -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 diff --git a/.github/workflows/linit-j2.yml b/.github/workflows/linit-j2.yml new file mode 100644 index 00000000..95bfa61f --- /dev/null +++ b/.github/workflows/linit-j2.yml @@ -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 diff --git a/.github/workflows/pr-conflicts.yml b/.github/workflows/pr-conflicts.yml deleted file mode 100644 index 2fd0bb42..00000000 --- a/.github/workflows/pr-conflicts.yml +++ /dev/null @@ -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." diff --git a/.github/workflows/pull-request-labels.yml b/.github/workflows/pull-request-labels.yml deleted file mode 100644 index 3398af5b..00000000 --- a/.github/workflows/pull-request-labels.yml +++ /dev/null @@ -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 diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..1b3e518b --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* @kumvijaya
\ No newline at end of file diff --git a/scripts/check-pr-title-and-commit-messages.py b/scripts/check-pr-title-and-commit-messages.py deleted file mode 100755 index 8fe3ca79..00000000 --- a/scripts/check-pr-title-and-commit-messages.py +++ /dev/null @@ -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("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"]) |