From 8b57a035ee1f4aff1beca4dcffaf3f23cb768b8e Mon Sep 17 00:00:00 2001 From: Sanket Sudake Date: Tue, 22 Jun 2021 15:00:58 +0530 Subject: [PATCH] Add a separate lint and unit test flow (#2089) Signed-off-by: Sanket Sudake --- .github/workflows/codeql.yaml | 4 ++ .github/workflows/lint.yaml | 64 +++++++++++++++++++++++++++++ .github/workflows/push_pr.yaml | 11 +++-- .github/workflows/upgrade_test.yaml | 4 ++ 4 files changed, 77 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/lint.yaml diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index 5a6ea3ee..afc5ee04 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -6,11 +6,15 @@ on: - master paths: - '**.go' + - go.mod + - go.sum pull_request: branches: - master paths: - '**.go' + - go.mod + - go.sum schedule: - cron: "0 0 * * 0" workflow_dispatch: diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml new file mode 100644 index 00000000..8cd32d04 --- /dev/null +++ b/.github/workflows/lint.yaml @@ -0,0 +1,64 @@ +name: Lint and Unit tests + +on: + push: + branches: + - master + paths: + - '**.go' + - go.mod + - go.sum + pull_request: + branches: + - master + paths: + - '**.go' + - go.mod + - go.sum + workflow_dispatch: + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Set up Go 1.15 + uses: actions/setup-go@v2 + with: + go-version: 1.15 + + - name: Check out code + uses: actions/checkout@v2 + + - name: Verify dependencies + run: | + go mod verify + go mod download + + LINT_VERSION=1.39.0 + curl -fsSL https://github.com/golangci/golangci-lint/releases/download/v${LINT_VERSION}/golangci-lint-${LINT_VERSION}-linux-amd64.tar.gz | \ + tar xz --strip-components 1 --wildcards \*/golangci-lint + mkdir -p bin && mv golangci-lint bin/ + + - name: Run checks + run: | + STATUS=0 + assert-nothing-changed() { + local diff + "$@" >/dev/null || return 1 + if ! diff="$(git diff -U1 --color --exit-code)"; then + printf '\e[31mError: running `\e[1m%s\e[22m` results in modifications that you must check into version control:\e[0m\n%s\n\n' "$*" "$diff" >&2 + git checkout -- . + STATUS=1 + fi + } + + assert-nothing-changed go fmt ./... + assert-nothing-changed go mod tidy + + bin/golangci-lint run --out-format=github-actions --timeout=3m || STATUS=$? + + exit $STATUS + + - name: Run unit tests + run: ./hack/runtests.sh \ No newline at end of file diff --git a/.github/workflows/push_pr.yaml b/.github/workflows/push_pr.yaml index fd7a3cc3..a532224f 100644 --- a/.github/workflows/push_pr.yaml +++ b/.github/workflows/push_pr.yaml @@ -8,6 +8,8 @@ on: - '**.go' - 'charts/**' - 'test/**' + - go.mod + - go.sum pull_request: branches: - master @@ -16,6 +18,8 @@ on: - '**.go' - 'charts/**' - 'test/**' + - go.mod + - go.sum workflow_dispatch: jobs: @@ -59,15 +63,10 @@ jobs: kubectl get nodes sudo apt-get install -y apache2-utils - - name: Static code analysis + - name: Helm chart lint run: | - ./hack/verify-gofmt.sh - ./hack/verify-govet.sh helm lint charts/fission-all/ charts/fission-core/ - - name: Run unit tests - run: ./hack/runtests.sh - - name: Helm update run: helm repo add prometheus-community https://prometheus-community.github.io/helm-charts diff --git a/.github/workflows/upgrade_test.yaml b/.github/workflows/upgrade_test.yaml index 85974e1c..b9e7e808 100644 --- a/.github/workflows/upgrade_test.yaml +++ b/.github/workflows/upgrade_test.yaml @@ -8,6 +8,8 @@ on: - '**.go' - 'charts/**' - 'test/**' + - go.mod + - go.sum pull_request: branches: - master @@ -15,6 +17,8 @@ on: - '**.go' - 'charts/**' - 'test/**' + - go.mod + - go.sum workflow_dispatch: jobs: