Skip to content

Commit

Permalink
ci: add lint and tsc checks on pr
Browse files Browse the repository at this point in the history
  • Loading branch information
Pkcarreno committed Sep 10, 2024
1 parent ad30f3c commit 3aff977
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 0 deletions.
16 changes: 16 additions & 0 deletions .github/actions/setup-node-pnpm-install/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Taken from obytes' react native template: https://github.com/obytes/react-native-template-obytes

name: "Setup Node + PNPM + Install Dependencies"
description: "Setup Node + PNPM + Install Dependencies"
runs:
using: "composite"
steps:
- uses: pnpm/action-setup@v4

- uses: actions/setup-node@v4
with:
cache: "pnpm"

- name: 📦 Install Project Dependencies
run: pnpm install --frozen-lockfile
shell: bash
77 changes: 77 additions & 0 deletions .github/workflows/precheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Taken from obytes' react native template: https://github.com/obytes/react-native-template-obytes

name: Precheck

on:
pull_request:
branches: [main]
workflow_call:

jobs:
install:
name: Prepare enviroment + Cache
runs-on: ubuntu-latest
steps:
- name: 📦 Checkout project repo
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: 📦 Setup Node + PNPM + install deps
uses: ./.github/actions/setup-node-pnpm-install

lint:
name: Lint TS (eslint, prettier)
needs: [install]
runs-on: ubuntu-latest
steps:
- name: 📦 Checkout project repo
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: 📦 Setup Node + PNPM + install deps
uses: ./.github/actions/setup-node-pnpm-install

- name: 🏃‍♂️ Run ESLint PR
if: github.event_name == 'pull_request'
uses: reviewdog/action-eslint@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
eslint_flags: "src --max-warnings=0"

- name: 🏃‍♂️ Run ESLint PR
if: github.event_name != 'pull_request'
run: pnpm run lint

type-check:
name: Check
needs: [install]
runs-on: ubuntu-latest
steps:
- name: 📦 Checkout project repo
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: 📦 Setup Node + PNPM + install deps
uses: ./.github/actions/setup-node-pnpm-install

- name: 📦 Install Reviewdog
if: github.event_name == 'pull_request'
uses: reviewdog/action-setup@v1

- name: 🏃‍♂️ Run TypeScript PR # Reviewdog tsc errorformat: %f:%l:%c - error TS%n: %m
# We only need to add the reviewdog step if it's a pull request
if: github.event_name == 'pull_request'
run: |
pnpm check | reviewdog -name="tsc" -efm="%f(%l,%c): error TS%n: %m" -reporter="github-pr-review" -filter-mode="nofilter" -fail-on-error -tee
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name:
🏃‍♂️ Run TypeScript Commit
# If it's not a Pull Request then we just need to run the type-check
if: github.event_name != 'pull_request'
run: pnpm check

0 comments on commit 3aff977

Please sign in to comment.