From ba40c9ceff2a500a83d65ba25bb43e2d698baed0 Mon Sep 17 00:00:00 2001 From: Paul Miller Date: Fri, 28 Jul 2023 11:39:28 -0500 Subject: [PATCH] add code-quality CI workflow --- .github/workflows/code-quality.yml | 55 ++++++++++++++++++++++++++++++ .github/workflows/playwright.yml | 8 +++-- package.json | 3 +- 3 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/code-quality.yml diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml new file mode 100644 index 0000000..2d0256d --- /dev/null +++ b/.github/workflows/code-quality.yml @@ -0,0 +1,55 @@ +name: Code Quality Check +on: + push: + branches: + - master + - prod + pull_request: + branches: + - '*' + +jobs: + code_quality: + runs-on: ubuntu-latest + + steps: + - name: Checkout source + uses: actions/checkout@v3 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 18.x + + - uses: pnpm/action-setup@v2 + name: Install pnpm + id: pnpm-install + with: + run_install: false + + - name: Get pnpm store directory + id: pnpm-cache + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + + - uses: actions/cache@v3 + name: Setup pnpm cache + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: Step Zero - Install Dependencies + run: pnpm install + + - name: Step One - Check Code Formatting + run: pnpm run check-format + + - name: Step Two - Check Lint Errors + run: pnpm run eslint + + - name: Step Three - Check Type Check Errors + run: pnpm run check-types + diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index fedfbe6..907ea8e 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -1,9 +1,13 @@ name: Playwright Tests on: push: - branches: [ main, master ] + branches: + - master + - prod pull_request: - branches: [ main, master ] + branches: + - '*' + jobs: test: timeout-minutes: 60 diff --git a/package.json b/package.json index ef05b57..f13427f 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "check-types": "tsc --noemit", "eslint": "eslint src", "lint": "pnpm run eslint && pnpm run check-types", - "format": "npx prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css,scss,md}\"" + "format": "npx prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css,scss,md}\"", + "check-format": "npx prettier --check \"src/**/*.{ts,tsx,js,jsx,json,css,scss,md}\"" }, "type": "module", "devDependencies": {