mirror of
https://github.com/kubevela/kubevela.git
synced 2026-05-06 17:37:09 +00:00
add staticcheck CI action add staticcheck in Makefile Signed-off-by: roywang <seiwy2010@gmail.com>
187 lines
4.5 KiB
YAML
187 lines
4.5 KiB
YAML
name: Go
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- release-*
|
|
workflow_dispatch: {}
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
env:
|
|
# Common versions
|
|
GO_VERSION: '1.14'
|
|
GOLANGCI_VERSION: 'v1.31'
|
|
DOCKER_BUILDX_VERSION: 'v0.4.2'
|
|
KIND_VERSION: 'v0.7.0'
|
|
|
|
jobs:
|
|
|
|
unit-tests:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Set up Go 1.14
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
id: go
|
|
|
|
- name: Check out code into the Go module directory
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Cache Go Dependencies
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: .work/pkg
|
|
key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: ${{ runner.os }}-pkg-
|
|
|
|
- name: Install ginkgo
|
|
run: |
|
|
sudo apt-get install -y golang-ginkgo-dev
|
|
|
|
- name: Setup Kind Cluster
|
|
uses: engineerd/setup-kind@v0.5.0
|
|
with:
|
|
version: ${{ env.KIND_VERSION }}
|
|
|
|
- name: install Kubebuilder
|
|
uses: wonderflow/kubebuilder-action@v1.1
|
|
|
|
- name: Run Make test
|
|
run: make test
|
|
|
|
- name: Upload coverage report
|
|
uses: codecov/codecov-action@v1
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
file: ./coverage.txt
|
|
flags: unittests
|
|
name: codecov-umbrella
|
|
|
|
e2e-tests:
|
|
runs-on: aliyun
|
|
steps:
|
|
- name: Check out code into the Go module directory
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
|
|
- name: Get dependencies
|
|
run: |
|
|
go get -v -t -d ./...
|
|
|
|
- name: Setup Kind
|
|
uses: engineerd/setup-kind@v0.5.0
|
|
with:
|
|
version: ${{ env.KIND_VERSION }}
|
|
skipClusterCreation: true
|
|
|
|
- name: Setup Kind Cluster
|
|
run: |
|
|
kind delete cluster
|
|
kind create cluster
|
|
kubectl version
|
|
kubectl cluster-info
|
|
|
|
- name: Load Image to kind cluster
|
|
run: make kind-load
|
|
|
|
- name: Run Make
|
|
run: make
|
|
|
|
- name: Run Make Manager
|
|
run: make manager
|
|
|
|
- name: Prepare for e2e tests
|
|
run: |
|
|
make e2e-cleanup
|
|
make e2e-setup
|
|
|
|
- name: Wait for e2e preparation ready
|
|
run: |
|
|
timeout 60 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:38081/api/workloads)" != "200" ]]; do sleep 5; done' || false
|
|
|
|
- name: Run api e2e tests
|
|
run: make e2e-api-test
|
|
|
|
- name: Run e2e tests
|
|
run: make e2e-test
|
|
|
|
staticcheck:
|
|
runs-on: ubuntu-20.04
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Cache Go Dependencies
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: .work/pkg
|
|
key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: ${{ runner.os }}-pkg-
|
|
|
|
- name: Static Check
|
|
run: go run honnef.co/go/tools/cmd/staticcheck -- ./...
|
|
|
|
lint:
|
|
runs-on: ubuntu-20.04
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Cache Go Dependencies
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: .work/pkg
|
|
key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: ${{ runner.os }}-pkg-
|
|
|
|
# This action uses its own setup-go, which always seems to use the latest
|
|
# stable version of Go. We could run 'make lint' to ensure our desired Go
|
|
# version, but we prefer this action because it leaves 'annotations' (i.e.
|
|
# it comments on PRs to point out linter violations).
|
|
- name: Lint
|
|
uses: golangci/golangci-lint-action@v2
|
|
with:
|
|
version: ${{ env.GOLANGCI_VERSION }}
|
|
|
|
check-diff:
|
|
runs-on: ubuntu-20.04
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
|
|
- name: Cache Go Dependencies
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: .work/pkg
|
|
key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: ${{ runner.os }}-pkg-
|
|
|
|
- name: Check code formatting
|
|
run: go install golang.org/x/tools/cmd/goimports && make fmt
|
|
|
|
- name: Check Diff
|
|
run: make check-diff
|