Skip to content

Commit

Permalink
feat(pull-request): add some expectations for PR as well as lint support
Browse files Browse the repository at this point in the history
Adds expectations for PR creation as well as a reusable workflow that
can be used to lint PRs.
  • Loading branch information
greenkiwi committed Jun 7, 2024
1 parent 8dedb31 commit d0ab07d
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 0 deletions.
12 changes: 12 additions & 0 deletions .github/workflows/ci.pr-lint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: CI

on:
pull_request:
types: [edited, opened, reopened, synchronize]
branches: [main]

jobs:
pr-lint:
name: PR Lint
uses: ./.github/workflows/reusable-workflow.pr-lint.yaml
secrets: inherit
11 changes: 11 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,17 @@ jobs:
run: mkdocs build --config-file ./mkdocs.yml --site-dir ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
- name: Fetch tags
if: steps.release.outputs.new-release-published == 'true'
shell: bash
run: |
git fetch --tags
git clean -fd
- name: Major branch
if: steps.release.outputs.new-release-published == 'true'
uses: open-turo/action-major-release@v1
with:
major-version: ${{ steps.release.outputs.new-release-major-version }}

# Deployment job
deploy:
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/reusable-workflow.pr-lint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: "Workflow: PR Lint"

on:
workflow_call:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
publish:
name: Lint PR
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate Checklists
uses: roryq/checkmate@master
37 changes: 37 additions & 0 deletions docs/pull-requests.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Pull Request standards

Our baseline standards follow
teh [GitHub: Best practices for pull requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/getting-started/best-practices-for-pull-requests)

## Additional standards and expectations

### Standard names for checks

When creating status checks, we expect the following names to be used:

- Lint
- Test
- PR Lint

#### Lint

Perform linting checks on the codebase. This should include checks for formatting, style, and other linting checks. It
is suggested to use a tool such as pre-commit to perform these checks.

#### Test

When you have the ability to run tests, we expect them to run on all PRs and report as `Test`.

#### PR Lint

Not only should you look into writing good code and commits, but your pull requests should also be written with
intention. Where possible, we should add appropriate linting. These should repot as `PR Lint`.

##### Checkboxes

Adding checkboxes to PRs is a really powerful way to help reviewers understand what you have done and what you expect to
be done. We suggest the following checkboxes be added to PRs:

- Use [Checkmate checkboxes](https://github.com/RoryQ/checkmate)
- Use the reusable workflow in this repo to lint your PRs
- Have a requited check for `PR Lint`

0 comments on commit d0ab07d

Please sign in to comment.