summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijayakumar <kumvijaya@gmail.com>2024-05-07 14:32:43 +0530
committerVijayakumar <kumvijaya@gmail.com>2024-05-07 14:32:43 +0530
commitd327ae13f5da750e80ebc2497139b7fd94ad6a88 (patch)
treeff92885e49f7d930a4d7f36c18630b88e7864654
parente40e9e81809c6c49cb012a01c63a3463bfa41f8e (diff)
downloadvyos-github-actions-d327ae13f5da750e80ebc2497139b7fd94ad6a88.tar.gz
vyos-github-actions-d327ae13f5da750e80ebc2497139b7fd94ad6a88.zip
T6310: add PR templates
-rw-r--r--.github/PULL_REQUEST_TEMPLATE.md60
-rw-r--r--.github/labeler.yml12
-rw-r--r--.github/reviewers.yml3
-rw-r--r--.github/workflows/auto-author-assign.yml27
-rw-r--r--.github/workflows/mergifyio_backport.yml22
-rw-r--r--.github/workflows/pr-conflicts.yml18
-rw-r--r--.github/workflows/pull-request-labels.yml20
-rw-r--r--.github/workflows/pull-request-management.yml25
-rw-r--r--.github/workflows/pull-request-message-check.yml23
-rw-r--r--.github/workflows/stale.yml22
-rw-r--r--.github/workflows/unused-imports.yml22
11 files changed, 254 insertions, 0 deletions
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..cd348ea
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,60 @@
+<!-- All PR should follow this template to allow a clean and transparent review -->
+<!-- Text placed between these delimiters is considered a comment and is not rendered -->
+
+## Change Summary
+<!--- Provide a general summary of your changes in the Title above -->
+
+## Types of changes
+<!---
+What types of changes does your code introduce? Put an 'x' in all the boxes that apply.
+NOTE: Markdown requires no leading or trailing whitespace inside the [ ] for checking
+the box, please use [x]
+-->
+- [ ] Bug fix (non-breaking change which fixes an issue)
+- [ ] New feature (non-breaking change which adds functionality)
+- [ ] Code style update (formatting, renaming)
+- [ ] Refactoring (no functional changes)
+- [ ] Migration from an old Vyatta component to vyos-1x, please link to related PR inside obsoleted component
+- [ ] Other (please describe):
+
+## Related Task(s)
+<!-- optional: Link to related other tasks on Phabricator. -->
+<!-- * https://vyos.dev/Txxxx -->
+
+## Related PR(s)
+<!-- Link here any PRs in other repositories that are required by this PR -->
+
+## Component(s) name
+<!-- A rather incomplete list of components: ethernet, wireguard, bgp, mpls, ldp, l2tp, dhcp ... -->
+
+## Proposed changes
+<!--- Describe your changes in detail -->
+
+## How to test
+<!---
+Please describe in detail how you tested your changes. Include details of your testing
+environment, and the tests you ran. When pasting configs, logs, shell output, backtraces,
+and other large chunks of text, surround this text with triple backtics
+```
+like this
+```
+-->
+
+## Smoketest result
+<!-- Provide the output of the smoketest
+```
+$ /usr/libexec/vyos/tests/smoke/cli/test_xxx_feature.py
+test_01_simple_options (__main__.TestFeature.test_01_simple_options) ... ok
+```
+-->
+
+## Checklist:
+<!--- 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 linked this PR to one or more Phabricator Task(s)
+- [ ] I have run the components [**SMOKETESTS**](https://github.com/vyos/vyos-1x/tree/current/smoketest/scripts/cli) if applicable
+- [ ] My commit headlines contain a valid Task id
+- [ ] My change requires a change to the documentation
+- [ ] I have updated the documentation accordingly
diff --git a/.github/labeler.yml b/.github/labeler.yml
new file mode 100644
index 0000000..e0b9ee4
--- /dev/null
+++ b/.github/labeler.yml
@@ -0,0 +1,12 @@
+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
new file mode 100644
index 0000000..a1647d2
--- /dev/null
+++ b/.github/reviewers.yml
@@ -0,0 +1,3 @@
+---
+"**/*":
+ - team: reviewers
diff --git a/.github/workflows/auto-author-assign.yml b/.github/workflows/auto-author-assign.yml
new file mode 100644
index 0000000..1a7f8ef
--- /dev/null
+++ b/.github/workflows/auto-author-assign.yml
@@ -0,0 +1,27 @@
+name: "PR Triage"
+on:
+ pull_request_target:
+ types: [opened, reopened, ready_for_review, locked]
+
+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 }}
+
+ # 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
diff --git a/.github/workflows/mergifyio_backport.yml b/.github/workflows/mergifyio_backport.yml
new file mode 100644
index 0000000..d9f863d
--- /dev/null
+++ b/.github/workflows/mergifyio_backport.yml
@@ -0,0 +1,22 @@
+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/pr-conflicts.yml b/.github/workflows/pr-conflicts.yml
new file mode 100644
index 0000000..2fd0bb4
--- /dev/null
+++ b/.github/workflows/pr-conflicts.yml
@@ -0,0 +1,18 @@
+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
new file mode 100644
index 0000000..43856be
--- /dev/null
+++ b/.github/workflows/pull-request-labels.yml
@@ -0,0 +1,20 @@
+---
+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-latest
+ permissions:
+ contents: read
+ pull-requests: write
+ steps:
+ - uses: actions/labeler@v5
diff --git a/.github/workflows/pull-request-management.yml b/.github/workflows/pull-request-management.yml
new file mode 100644
index 0000000..3a855c1
--- /dev/null
+++ b/.github/workflows/pull-request-management.yml
@@ -0,0 +1,25 @@
+---
+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
new file mode 100644
index 0000000..8c206a5
--- /dev/null
+++ b/.github/workflows/pull-request-message-check.yml
@@ -0,0 +1,23 @@
+---
+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
new file mode 100644
index 0000000..d21d151
--- /dev/null
+++ b/.github/workflows/stale.yml
@@ -0,0 +1,22 @@
+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
new file mode 100644
index 0000000..da57bd2
--- /dev/null
+++ b/.github/workflows/unused-imports.yml
@@ -0,0 +1,22 @@
+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