From 26a1e6389f9c0377bcee34b1c1f4768863ae5c7a Mon Sep 17 00:00:00 2001 From: fengshunli <1171313930@qq.com> Date: Wed, 17 May 2023 19:41:06 +0800 Subject: [PATCH] Feat: add golangci-lint ci Signed-off-by: fengshunli <1171313930@qq.com> --- .github/workflows/ci.yaml | 41 +++++++++++++++++++++++++++++++++++++++ Makefile | 3 +++ scripts/verify_mod.sh | 27 ++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 .github/workflows/ci.yaml create mode 100755 scripts/verify_mod.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 000000000..a0c04e195 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,41 @@ +name: CI + +on: + push: + branches: + - master + - develop + - release-* + pull_request: {} + workflow_dispatch: {} + +env: + GO_VERSION: 1.18 + +jobs: + + verify: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Verify Code + run: make verify + + golangci-lint: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + - name: Setup Go + uses: actions/setup-go@v4 + with: + go-version: ${{ env.GO_VERSION }} + - name: Lint golang code + uses: golangci/golangci-lint-action@v3 + with: + version: v1.47.3 + args: --timeout 10m -v + skip-cache: true diff --git a/Makefile b/Makefile index bb7f28f8a..b04e9a642 100644 --- a/Makefile +++ b/Makefile @@ -63,3 +63,6 @@ test: upload: @NOSCMD=$(NOSCMD) bash build/package/upload.sh $(VERSION) + +verify: + scripts/verify_mod.sh \ No newline at end of file diff --git a/scripts/verify_mod.sh b/scripts/verify_mod.sh new file mode 100755 index 000000000..5d842bd8e --- /dev/null +++ b/scripts/verify_mod.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +# Copyright 2022 The OpenYurt Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e +set -u + +YURT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)" + +go mod tidy + +if [ ! -z "$(git diff ${YURT_ROOT}/go.mod ${YURT_ROOT}/go.sum)" ]; then + echo "Verify go mod error, please ensure go.mod has been tidied" + exit -1 +fi