diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml new file mode 100644 index 0000000..9f6d921 --- /dev/null +++ b/.github/workflows/golangci-lint.yml @@ -0,0 +1,32 @@ +name: Lint + +# 定义触发条件:在 `dev` 分支的 push 或 pull request 事件触发工作流 +on: + push: + branches: + - dev # 当向 dev 分支推送时触发 + pull_request: + branches: + - dev # 当对 dev 分支发起拉取请求时触发 + +jobs: + lint: + runs-on: ubuntu-latest # 指定工作流运行在最新的 Ubuntu 环境中 + + steps: + # 第一步:检查出代码 + - name: Checkout code + uses: actions/checkout@v4 # 使用 GitHub 提供的 checkout 动作,确保代码在工作流环境中可用 + + # 第二步:设置 Go 环境 + - name: Set up Go + uses: actions/setup-go@v5 # 使用 GitHub 提供的 setup-go 动作,设置 Go 环境 + with: + go-version: stable + + # 第三步:运行 golangci-lint + - name: Run golangci-lint + uses: golangci/golangci-lint-action@v6 # 使用 golangci-lint-action + with: + version: v1.61.0 # 指定 golangci-lint 版本 + args: '--config .golangci.yml' # 使用指定的配置文件 diff --git a/.golangci.yml b/.golangci.yml index a694027..a1ca004 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -2,8 +2,8 @@ run: concurrency: 4 # 并行执行的 linter 数量,默认为可用 CPU 数量 - deadline: 1m # 分析的最大超时时间,默认为 1 分钟 - timeout: 5m # 超时时间 + deadline: 5m # 分析的最大超时时间,默认为 5 分钟 + timeout: 10m # 超时时间 issues-exit-code: 1 # 如果发现至少一个问题,退出码为 1 tests: true # 包含测试文件进行分析 modules-download-mode: readonly # 防止分析过程中修改 go.mod 文件