mirror of
https://github.com/kubevela/kubevela.git
synced 2026-08-19 04:26:39 +00:00
solve failed test add compatibility test for old crd add app ns for cli modify compatibility test solve compatibility problem add testing for GetDefinition func with cluster scope CRD generate code for compatibility-test move testdata generate to makefile optimize ci pipeline for compatibility-test
232 lines
5.6 KiB
YAML
232 lines
5.6 KiB
YAML
name: Go
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- release-*
|
|
workflow_dispatch: {}
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
- release-*
|
|
|
|
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
|
|
|
|
compatibility-test:
|
|
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 compatibility-test
|
|
run: make compatibility-test
|
|
|
|
- name: Clean up testdata
|
|
run: make compatibility-testdata-cleanup
|
|
|
|
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
|
|
|
|
- name: Cleanup image
|
|
if: ${{ always() }}
|
|
run: make image-cleanup
|
|
|
|
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
|