From e6ef0c9ad60681c54dc49f10f6471d0054211ffe Mon Sep 17 00:00:00 2001 From: Acbox Date: Sat, 21 Mar 2026 19:18:30 +0800 Subject: [PATCH] chore(ci): add go checks in husky --- .github/workflows/eslint.yml | 60 ++++++++++++++++++++++++++++++++++++ .husky/check-go | 6 ++++ .husky/check-go-test | 6 ++++ .husky/check-pnpm | 2 +- .husky/pre-commit | 19 +++++++++++- 5 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/eslint.yml create mode 100644 .husky/check-go create mode 100644 .husky/check-go-test diff --git a/.github/workflows/eslint.yml b/.github/workflows/eslint.yml new file mode 100644 index 00000000..ae05d784 --- /dev/null +++ b/.github/workflows/eslint.yml @@ -0,0 +1,60 @@ +name: ESLint + +on: + push: + branches: ["main"] + paths: + - "**/*.js" + - "**/*.cjs" + - "**/*.mjs" + - "**/*.ts" + - "**/*.tsx" + - "**/*.vue" + - "**/package.json" + - "pnpm-lock.yaml" + - "pnpm-workspace.yaml" + - "eslint.config.mjs" + - "**/tsconfig*.json" + - ".github/workflows/eslint.yml" + pull_request: + branches: ["main"] + paths: + - "**/*.js" + - "**/*.cjs" + - "**/*.mjs" + - "**/*.ts" + - "**/*.tsx" + - "**/*.vue" + - "**/package.json" + - "pnpm-lock.yaml" + - "pnpm-workspace.yaml" + - "eslint.config.mjs" + - "**/tsconfig*.json" + - ".github/workflows/eslint.yml" + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 10 + - uses: actions/setup-node@v4 + with: + node-version: lts/* + cache: pnpm + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Run ESLint + run: pnpm lint diff --git a/.husky/check-go b/.husky/check-go new file mode 100644 index 00000000..1ebe32e1 --- /dev/null +++ b/.husky/check-go @@ -0,0 +1,6 @@ +#!/usr/bin/env sh + +export PATH="$HOME/.local/share/mise/shims:$HOME/.local/bin:$HOME/.npm-global/bin:/opt/homebrew/bin:/usr/local/bin:$PATH" + +echo "Check Go lint..." +golangci-lint run ./... diff --git a/.husky/check-go-test b/.husky/check-go-test new file mode 100644 index 00000000..d8335ca0 --- /dev/null +++ b/.husky/check-go-test @@ -0,0 +1,6 @@ +#!/usr/bin/env sh + +export PATH="$HOME/.local/share/mise/shims:$HOME/.local/bin:$HOME/.npm-global/bin:/opt/homebrew/bin:/usr/local/bin:$PATH" + +echo "Check Go test..." +go test ./... diff --git a/.husky/check-pnpm b/.husky/check-pnpm index 122b43a5..c6b5a3c4 100755 --- a/.husky/check-pnpm +++ b/.husky/check-pnpm @@ -3,4 +3,4 @@ export PATH="$HOME/.local/share/mise/shims:$HOME/.local/bin:$HOME/.npm-global/bin:/opt/homebrew/bin:/usr/local/bin:$PATH" echo "Check lint..." -pnpm lint:fix || true \ No newline at end of file +pnpm lint:fix \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit index 9d33a145..d4df9723 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -7,4 +7,21 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" sh "$SCRIPT_DIR/check-large-files" || exit 1 echo "" -sh "$SCRIPT_DIR/check-pnpm" || exit 1 +echo "Running checks..." + +sh "$SCRIPT_DIR/check-go" & +PID_GO=$! + +sh "$SCRIPT_DIR/check-go-test" & +PID_GO_TEST=$! + +sh "$SCRIPT_DIR/check-pnpm" & +PID_PNPM=$! + +FAIL=0 + +wait "$PID_GO" || FAIL=1 +wait "$PID_GO_TEST" || FAIL=1 +wait "$PID_PNPM" || FAIL=1 + +[ "$FAIL" -eq 0 ] || exit 1