Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: github CI #4

Merged
merged 18 commits into from
Nov 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/BUG_REPORT.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: 🐛 Bug Report
description: Create a report to help us improve this repo.
title: '[bug]: '
labels: ['issue: bug']
body:
- type: markdown
attributes:
value: |
Thank you for filing a bug report!
- type: textarea
attributes:
label: What version of `@strapi/sdk-js` are you using?
placeholder: |
- Npm version
- Node.js version
- React version:
- `@strapi/sdk-js` version
- Browser
validations:
required: true
- type: textarea
attributes:
label: "What's Wrong?"
description: A concise description of what you expected to happen (please provide screenshots).
validations:
required: true
- type: textarea
attributes:
label: To Reproduce
description: Steps to reproduce the behavior
validations:
required: true
- type: textarea
attributes:
label: Expected Behaviour
description: What you expected to happen
validations:
required: true
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/FEATURE_REQUEST.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: 🚀 Feature Request
description: Submit a request for a new feature
title: '[feat]: '
labels: ['issue: enhancement']
body:
- type: markdown
attributes:
value: |
Thank you for contributing a feature request!
- type: textarea
attributes:
label: A clear and concise description of what the feature is
validations:
required: true
- type: textarea
attributes:
label: Why should this feature be included?
validations:
required: true
- type: textarea
attributes:
label: Please provide an example for how this would work
15 changes: 15 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### What does it do?

Describe the technical changes you did.

### Why is it needed?

Describe the issue you are solving.

### How to test it?

Provide information about the environment and the path to verify the behaviour.

### Related issue(s)/PR(s)

Let us know if this is related to any issue/pull request
2 changes: 2 additions & 0 deletions .github/filters.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
unit:
- 'tests/unit/**/*.(ts)'
30 changes: 30 additions & 0 deletions .github/workflows/commitlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: 'Commitlint'

on:
push:
branches:
- main
pull_request:

permissions:
contents: read # to fetch code (actions/checkout)
actions: read

jobs:
commitlint:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 20
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9.1.0
run_install: true
- name: Validate PR commits with commitlint
if: github.event_name == 'pull_request'
run: pnpx commitlint --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} --verbose
30 changes: 30 additions & 0 deletions .github/workflows/issues_dailyCron.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: 'Daily Cron - 00:00'

on:
schedule:
- cron: '0 0 * * *'

permissions:
issues: write
statuses: read

jobs:
cron-tasks:
runs-on: ubuntu-latest
steps:
- name: check for inactive issues that can't be reproduced
uses: actions-cool/issues-helper@v3
with:
actions: 'close-issues'
token: ${{ secrets.GITHUB_TOKEN }}
labels: 'status: can not reproduce'
inactive-day: 14
close-reason: 'completed'
body: |
Hello!

As we have not received any new or updated information to reproduce this issue in the last 14 days we are marking this issue as closed. Should you have new information please feel free to respond and we will consider reopening it.

If anyone else has updated information for this issue, please open up a new bug report and simply reference this closed bug report so that we can get any new information you may have. If you have questions please refer to the [contributor's guide](https://github.com/strapi/strapi/blob/main/CONTRIBUTING.md#reporting-an-issue) on opening issues.

Thank you and have a great day!
96 changes: 96 additions & 0 deletions .github/workflows/issues_handleLabel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Issue Labeled

on:
issues:
types: [ labeled ]

permissions:
issues: write
pull-requests: write
actions: read
checks: read
contents: read
repository-projects: read
statuses: read

jobs:
issue-labeled:
runs-on: ubuntu-latest
steps:
# Unable to Reproduce Tasks
- name: 'Comment: unable to reproduce'
if: "${{ github.event.label.name == 'status: can not reproduce' }}"
uses: actions-cool/issues-helper@v3
with:
actions: 'create-comment'
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
body: |
> This is a templated message

Hello @${{ github.event.issue.user.login }},

Thank you for reporting this bug, however we are unable to reproduce the issue you described given the information we have on hand. Can you please create a fresh project that you are able to reproduce the issue in, provide clear steps to reproduce this issue, and either upload this fresh project to a new GitHub repo or compress it into a `.zip` and upload it on this issue?

We would greatly appreciate your assistance with this, by working in a fresh project it will cut out any possible variables that might be unrelated.
Please note that issues labeled with `status: can not reproduce` will be closed in 14 days if there is no activity.

Thank you!

# Invalid bug report template actions
- name: 'Comment: invalid bug report template'
if: "${{ github.event.label.name == 'flag: invalid template' }}"
uses: actions-cool/issues-helper@v3
with:
actions: 'create-comment'
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
body: |
> This is a templated message

Hello @${{ github.event.issue.user.login }},

We ask that you please follow the [issue template](https://raw.githubusercontent.com/strapi/strapi/master/.github/ISSUE_TEMPLATE/BUG_REPORT.md).
A proper issue submission let's us better understand the origin of your bug and therefore help you. We will reopen your issue when we receive the issue following the template guidelines and properly fill out the template. You can see the template guidelines for bug reports [here](https://github.com/strapi/strapi/blob/master/CONTRIBUTING.md#reporting-an-issue).

Please update the issue with the template and we can reopen this report.

Thank you.

- name: 'Close: invalid bug report template'
if: "${{ github.event.label.name == 'flag: invalid template' }}"
uses: actions-cool/issues-helper@v3
with:
actions: 'close-issue'
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
close-reason: 'not_planned'
# Redirect questions to community sources
- name: 'Comment: redirect question to community'
if: "${{ github.event.label.name == 'flag: question' }}"
uses: actions-cool/issues-helper@v3
with:
actions: 'create-comment'
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
body: |
> This is a templated message

Hello @${{ github.event.issue.user.login }},

I see you are wanting to ask a question that is not really a bug report,

- questions should be directed to [our forum](https://forum.strapi.io) or our [Discord](https://discord.strapi.io)
- feature requests should be directed to our [feedback and feature request database](https://feedback.strapi.io)

Please see the following contributing guidelines for asking a question [here](https://github.com/strapi/strapi/blob/master/CONTRIBUTING.md#reporting-an-issue).

Thank you.
- name: 'Close: redirect question to community'
if: "${{ github.event.label.name == 'flag: question' }}"
uses: actions-cool/issues-helper@v3
with:
actions: 'close-issue'
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
close-reason: 'complete'
87 changes: 87 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: 'Tests'

on:
push:
branches:
- main
pull_request:

permissions:
contents: read # to fetch code (actions/checkout)
actions: read

jobs:
cache-and-install:
runs-on: ubuntu-latest

strategy:
matrix:
node: [20, 22]

steps:
- name: Checkout
uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9.1.0
run_install: true

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}

build:
name: 'build (node: ${{ matrix.node }})'
needs: [cache-and-install]
runs-on: ubuntu-latest
strategy:
matrix:
node: [20, 22]
steps:
- name: Checkout
uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9.1.0
run_install: true

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'pnpm'

- name: Project build
shell: bash
run: pnpm run build:clean

unit_back:
name: 'unit_back (node: ${{ matrix.node }})'
needs: [ cache-and-install, build ]
runs-on: ubuntu-latest
strategy:
matrix:
node: [ 20, 22 ]
steps:
- name: Checkout
uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9.1.0
run_install: true

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'pnpm'

- name: Run tests
run: pnpm run test