From d412d183a04457a0620fdfba1dfbfe88077eeeb2 Mon Sep 17 00:00:00 2001 From: kumvijaya Date: Fri, 17 May 2024 12:42:10 +0530 Subject: [PATCH 1/4] T6349: updated conflict workflow --- .github/workflows/pr-conflicts.yml | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/.github/workflows/pr-conflicts.yml b/.github/workflows/pr-conflicts.yml index 2fd0bb42d1..20e7338a45 100644 --- a/.github/workflows/pr-conflicts.yml +++ b/.github/workflows/pr-conflicts.yml @@ -1,18 +1,13 @@ + name: "PR Conflicts checker" on: pull_request_target: types: [synchronize] +permissions: + pull-requests: write + 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." + check-pr-conflict-call: + uses: vyos/.github/.github/workflows/check-pr-merge-conflict.yml@feature/T6349-pr-conflict-workflow + secrets: inherit From 4515a4e0cf483a3526b05a9838fc30d9b812d43d Mon Sep 17 00:00:00 2001 From: kumvijaya Date: Fri, 17 May 2024 12:47:18 +0530 Subject: [PATCH 2/4] T6349: updated conflict workflow --- .github/workflows/pr-conflicts.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-conflicts.yml b/.github/workflows/pr-conflicts.yml index 20e7338a45..8b6cc752b9 100644 --- a/.github/workflows/pr-conflicts.yml +++ b/.github/workflows/pr-conflicts.yml @@ -9,5 +9,5 @@ permissions: jobs: check-pr-conflict-call: - uses: vyos/.github/.github/workflows/check-pr-merge-conflict.yml@feature/T6349-pr-conflict-workflow + uses: vyos/.github/.github/workflows/check-pr-merge-conflict.yml@current secrets: inherit From 7b6bd04c1066555cf88ef6608d57b2eece6ff9b9 Mon Sep 17 00:00:00 2001 From: kumvijaya Date: Sat, 18 May 2024 01:03:10 +0530 Subject: [PATCH 3/4] T6349: updated all workflows to use reusable workflows --- ...l-request-labels.yml => add-pr-labels.yml} | 9 +--- .github/workflows/auto-author-assign.yml | 9 +--- .github/workflows/chceck-pr-message.yml | 14 +++++ ...r-conflicts.yml => check-pr-conflicts.yml} | 0 .github/workflows/check-stale.yml | 9 ++++ .github/workflows/check-unused-imports.yml | 11 ++++ .github/workflows/codeql.yml | 13 +---- .github/workflows/label-backport.yml | 8 +++ .github/workflows/linit-j2.yml | 14 +++++ .github/workflows/mergifyio_backport.yml | 22 -------- .github/workflows/pull-request-management.yml | 25 --------- .../workflows/pull-request-message-check.yml | 23 --------- .github/workflows/stale.yml | 22 -------- .github/workflows/unused-imports.yml | 22 -------- scripts/check-pr-title-and-commit-messages.py | 51 ------------------- 15 files changed, 61 insertions(+), 191 deletions(-) rename .github/workflows/{pull-request-labels.yml => add-pr-labels.yml} (50%) create mode 100644 .github/workflows/chceck-pr-message.yml rename .github/workflows/{pr-conflicts.yml => check-pr-conflicts.yml} (100%) create mode 100644 .github/workflows/check-stale.yml create mode 100644 .github/workflows/check-unused-imports.yml create mode 100644 .github/workflows/label-backport.yml create mode 100644 .github/workflows/linit-j2.yml delete mode 100644 .github/workflows/mergifyio_backport.yml delete mode 100644 .github/workflows/pull-request-management.yml delete mode 100644 .github/workflows/pull-request-message-check.yml delete mode 100644 .github/workflows/stale.yml delete mode 100644 .github/workflows/unused-imports.yml delete mode 100755 scripts/check-pr-title-and-commit-messages.py diff --git a/.github/workflows/pull-request-labels.yml b/.github/workflows/add-pr-labels.yml similarity index 50% rename from .github/workflows/pull-request-labels.yml rename to .github/workflows/add-pr-labels.yml index 43856beaa1..dfd0b79ac4 100644 --- a/.github/workflows/pull-request-labels.yml +++ b/.github/workflows/add-pr-labels.yml @@ -11,10 +11,5 @@ on: jobs: add-pr-label: - name: Add PR Labels - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: write - steps: - - uses: actions/labeler@v5 + uses: vyos/.github/.github/workflows/add-pr-labels.yml@current + secrets: inherit diff --git a/.github/workflows/auto-author-assign.yml b/.github/workflows/auto-author-assign.yml index 0bfe972c08..e94c8d0aed 100644 --- a/.github/workflows/auto-author-assign.yml +++ b/.github/workflows/auto-author-assign.yml @@ -7,11 +7,6 @@ permissions: pull-requests: write 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.6.2 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} + uses: vyos/.github/.github/workflows/assign-author.yml@current + secrets: inherit diff --git a/.github/workflows/chceck-pr-message.yml b/.github/workflows/chceck-pr-message.yml new file mode 100644 index 0000000000..3bd31ad37f --- /dev/null +++ b/.github/workflows/chceck-pr-message.yml @@ -0,0 +1,14 @@ +--- +name: Check pull request message format + +on: + pull_request: + branches: + - current + - crux + - equuleus + +jobs: + check-pr-title: + uses: vyos/.github/.github/workflows/check-pr-message.yml@current + secrets: inherit diff --git a/.github/workflows/pr-conflicts.yml b/.github/workflows/check-pr-conflicts.yml similarity index 100% rename from .github/workflows/pr-conflicts.yml rename to .github/workflows/check-pr-conflicts.yml diff --git a/.github/workflows/check-stale.yml b/.github/workflows/check-stale.yml new file mode 100644 index 0000000000..eb44b8a275 --- /dev/null +++ b/.github/workflows/check-stale.yml @@ -0,0 +1,9 @@ +name: "Issue and PR stale management" +on: + schedule: + - cron: "0 0 * * *" + +jobs: + stale: + uses: vyos/.github/.github/workflows/check-stale.yml@current + secrets: inherit diff --git a/.github/workflows/check-unused-imports.yml b/.github/workflows/check-unused-imports.yml new file mode 100644 index 0000000000..904836f763 --- /dev/null +++ b/.github/workflows/check-unused-imports.yml @@ -0,0 +1,11 @@ +name: Check for unused imports using Pylint +on: + pull_request_target: + branches: + - current + - sagitta + +jobs: + Check-Unused-Imports: + uses: vyos/.github/.github/workflows/check-unused-imports.yml@current + secrets: inherit diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 9e2e4bf0f0..3b654c0db5 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,14 +1,3 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# name: "Perform CodeQL Analysis" on: @@ -27,7 +16,7 @@ permissions: jobs: codeql-analysis-call: - uses: vyos/vyos-github-actions/.github/workflows/codeql-analysis.yml@current + uses: vyos/.github/.github/workflows/codeql-analysis.yml@current secrets: inherit with: languages: "['python']" diff --git a/.github/workflows/label-backport.yml b/.github/workflows/label-backport.yml new file mode 100644 index 0000000000..894439c161 --- /dev/null +++ b/.github/workflows/label-backport.yml @@ -0,0 +1,8 @@ +name: Mergifyio backport + +on: [issue_comment] + +jobs: + mergifyio_backport: + uses: vyos/.github/.github/workflows/label-backport.yml@current + secrets: inherit diff --git a/.github/workflows/linit-j2.yml b/.github/workflows/linit-j2.yml new file mode 100644 index 0000000000..a78fa1fcbc --- /dev/null +++ b/.github/workflows/linit-j2.yml @@ -0,0 +1,14 @@ +--- +name: J2 Lint + +on: + pull_request: + branches: + - current + - crux + - equuleus + +jobs: + j2lint: + uses: vyos/.github/.github/workflows/lint-j2.yml@current + secrets: inherit diff --git a/.github/workflows/mergifyio_backport.yml b/.github/workflows/mergifyio_backport.yml deleted file mode 100644 index d9f863d9ad..0000000000 --- a/.github/workflows/mergifyio_backport.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Mergifyio backport - -on: [issue_comment] - -jobs: - mergifyio_backport: - if: github.repository == 'vyos/vyos-1x' - 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][Ee][Rr][Gg][Ii][Ff][Yy][Ii][Oo] backport ' - - - uses: actions-ecosystem/action-add-labels@v1 - if: ${{ steps.regex-match.outputs.match != '' }} - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - labels: backport diff --git a/.github/workflows/pull-request-management.yml b/.github/workflows/pull-request-management.yml deleted file mode 100644 index 3a855c1073..0000000000 --- a/.github/workflows/pull-request-management.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -name: Build Pull Request Package - -on: - pull_request: - branches: - - current - - crux - - equuleus - -jobs: - j2lint: - name: Validate j2 files - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - timeout-minutes: 2 - - name: Setup J2Lint - timeout-minutes: 2 - run: | - sudo pip install git+https://github.com/aristanetworks/j2lint.git@341b5d5db86e095b622f09770cb6367a1583620e - - name: Run J2lint - timeout-minutes: 2 - run: | - j2lint $GITHUB_WORKSPACE/data diff --git a/.github/workflows/pull-request-message-check.yml b/.github/workflows/pull-request-message-check.yml deleted file mode 100644 index 8c206a5abd..0000000000 --- a/.github/workflows/pull-request-message-check.yml +++ /dev/null @@ -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 }}' diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index d21d151f7a..0000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -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' diff --git a/.github/workflows/unused-imports.yml b/.github/workflows/unused-imports.yml deleted file mode 100644 index da57bd2702..0000000000 --- a/.github/workflows/unused-imports.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Check for unused imports using Pylint -on: - pull_request_target: - branches: - - current - - sagitta - -jobs: - Check-Unused-Imports: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v3 - with: - python-version: 3.11 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install pylint - - name: Analysing the code with pylint - run: make unused-imports 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 001f6cf828..0000000000 --- a/scripts/check-pr-title-and-commit-messages.py +++ /dev/null @@ -1,51 +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("PR title '{}' does not match the required format!".format(title)) - 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 '{}' does not match the required format!".format(title)) - 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"]) From 2a553b0ac9dbd3d9343de55dd1e775b9188133a9 Mon Sep 17 00:00:00 2001 From: kumvijaya Date: Sat, 18 May 2024 01:08:11 +0530 Subject: [PATCH 4/4] T6349: updated all workflows to use reusable workflows --- .github/workflows/add-pr-labels.yml | 2 +- .github/workflows/auto-author-assign.yml | 2 +- .github/workflows/chceck-pr-message.yml | 2 +- .github/workflows/check-pr-conflicts.yml | 2 +- .github/workflows/check-stale.yml | 2 +- .github/workflows/check-unused-imports.yml | 2 +- .github/workflows/codeql.yml | 2 +- .github/workflows/label-backport.yml | 2 +- .github/workflows/linit-j2.yml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/add-pr-labels.yml b/.github/workflows/add-pr-labels.yml index dfd0b79ac4..78d619f4a1 100644 --- a/.github/workflows/add-pr-labels.yml +++ b/.github/workflows/add-pr-labels.yml @@ -11,5 +11,5 @@ on: jobs: add-pr-label: - uses: vyos/.github/.github/workflows/add-pr-labels.yml@current + 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 e94c8d0aed..1f69f48073 100644 --- a/.github/workflows/auto-author-assign.yml +++ b/.github/workflows/auto-author-assign.yml @@ -8,5 +8,5 @@ permissions: jobs: assign-author: - uses: vyos/.github/.github/workflows/assign-author.yml@current + 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 index 3bd31ad37f..95c5b69ce9 100644 --- a/.github/workflows/chceck-pr-message.yml +++ b/.github/workflows/chceck-pr-message.yml @@ -10,5 +10,5 @@ on: jobs: check-pr-title: - uses: vyos/.github/.github/workflows/check-pr-message.yml@current + 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 index 8b6cc752b9..62a37a7faa 100644 --- a/.github/workflows/check-pr-conflicts.yml +++ b/.github/workflows/check-pr-conflicts.yml @@ -9,5 +9,5 @@ permissions: jobs: check-pr-conflict-call: - uses: vyos/.github/.github/workflows/check-pr-merge-conflict.yml@current + 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 index eb44b8a275..0b88acdb7e 100644 --- a/.github/workflows/check-stale.yml +++ b/.github/workflows/check-stale.yml @@ -5,5 +5,5 @@ on: jobs: stale: - uses: vyos/.github/.github/workflows/check-stale.yml@current + 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 index 904836f763..468543d6e5 100644 --- a/.github/workflows/check-unused-imports.yml +++ b/.github/workflows/check-unused-imports.yml @@ -7,5 +7,5 @@ on: jobs: Check-Unused-Imports: - uses: vyos/.github/.github/workflows/check-unused-imports.yml@current + 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 index 3b654c0db5..f6472784d6 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -16,7 +16,7 @@ permissions: jobs: codeql-analysis-call: - uses: vyos/.github/.github/workflows/codeql-analysis.yml@current + 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 index 894439c161..581363eb13 100644 --- a/.github/workflows/label-backport.yml +++ b/.github/workflows/label-backport.yml @@ -4,5 +4,5 @@ on: [issue_comment] jobs: mergifyio_backport: - uses: vyos/.github/.github/workflows/label-backport.yml@current + 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 index a78fa1fcbc..093fe7ffed 100644 --- a/.github/workflows/linit-j2.yml +++ b/.github/workflows/linit-j2.yml @@ -10,5 +10,5 @@ on: jobs: j2lint: - uses: vyos/.github/.github/workflows/lint-j2.yml@current + uses: vyos/.github/.github/workflows/lint-j2.yml@feature/T6349-reusable-workflows secrets: inherit