Skip to content

Commit 2bd61c4

Browse files
authored
Chore: add CI (#17)
* chore: add quality ci * chore: add labeler ci for checking examples * fix: remove @ in naming
1 parent 9d4771e commit 2bd61c4

6 files changed

Lines changed: 108 additions & 0 deletions

File tree

.github/labeler.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
"no examples 📝":
2+
- all: ["packages/eslint/**/*", "!packages/example-app/**/*"]

.github/workflows/pr-labeler.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: "PR Labeler"
2+
on:
3+
- pull_request_target
4+
5+
jobs:
6+
labeler:
7+
permissions:
8+
contents: read
9+
pull-requests: write
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/labeler@main
13+
with:
14+
repo-token: "${{ secrets.GITHUB_TOKEN }}"
15+
sync-labels: true
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Eslint-Config Quality
2+
3+
on: workflow_call
4+
5+
jobs:
6+
quality-job:
7+
name: Eslint-Config Quality
8+
runs-on: ubuntu-latest
9+
timeout-minutes: 10
10+
11+
defaults:
12+
run:
13+
# default directory for 'run' actions only in steps
14+
working-directory: packages/eslint
15+
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v3
19+
20+
- name: Setup node
21+
id: setup-node
22+
uses: actions/setup-node@v3
23+
with:
24+
node-version-file: packages/eslint/.nvmrc
25+
26+
- name: Load dependency cache
27+
uses: actions/cache@v3
28+
with:
29+
path: packages/eslint/node_modules
30+
# add `-patches-${{ hashFiles('patches/**/*') }}` if you use patch-package
31+
key: eslint-${{ runner.os }}-node-${{ steps.setup-node.outputs.node-version }}-modules-${{ hashFiles('yarn.lock') }}
32+
restore-keys: |
33+
eslint-${{ runner.os }}-node-${{ steps.setup-node.outputs.node-version }}-modules-
34+
eslint-${{ runner.os }}-node-${{ steps.setup-node.outputs.node-version }}-
35+
36+
- name: Install dependencies
37+
run: yarn --frozen-lockfile
38+
39+
- name: Tests
40+
run: yarn test

.github/workflows/quality.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Quality
2+
3+
on: pull_request
4+
5+
concurrency:
6+
group: ${{ github.workflow }}-${{ github.ref }}
7+
cancel-in-progress: true
8+
9+
jobs:
10+
changes:
11+
name: Check changes
12+
runs-on: ubuntu-latest
13+
permissions:
14+
pull-requests: read
15+
outputs:
16+
eslint: ${{ steps.filter.outputs.eslint }}
17+
steps:
18+
- uses: dorny/paths-filter@v2
19+
id: filter
20+
with:
21+
filters: |
22+
eslint:
23+
- 'packages/eslint/**'
24+
- 'packages/example-app/**'
25+
26+
eslint-quality:
27+
name: Eslint-Config Quality
28+
needs: changes
29+
if: ${{ needs.changes.outputs.eslint == 'true' }}
30+
uses: ./.github/workflows/quality-eslint.yml
31+
32+
final-check:
33+
name: Final Check
34+
needs: [eslint-quality]
35+
if: ${{ always() }}
36+
runs-on: ubuntu-latest
37+
steps:
38+
- name: Check previous jobs status
39+
run: |
40+
status=$(echo "${{ needs.eslint-quality.result }}" | tr '[:upper:]' '[:lower:]')
41+
if [[ "$status" == *"failure"* ]]; then
42+
echo "One or more previous jobs failed."
43+
exit 1
44+
else
45+
echo "All previous jobs succeeded or were skipped."
46+
exit 0
47+
fi

packages/eslint/.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
18

packages/eslint/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
"version": "0.1.0",
44
"main": "index.js",
55
"license": "MIT",
6+
"scripts": {
7+
"test": "echo 'No implemented tests... 😢'"
8+
},
69
"peerDependencies": {
710
"@typescript-eslint/eslint-plugin": ">= 5",
811
"eslint": ">= 8",

0 commit comments

Comments
 (0)