Fix: Prevent crashes when accessing cluster details #639
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: VelaUX APIServer Test | |
on: | |
push: | |
branches: | |
- main | |
- release-* | |
tags: | |
- v* | |
workflow_dispatch: { } | |
pull_request: | |
branches: | |
- main | |
- release-* | |
env: | |
# Common versions | |
GO_VERSION: '1.22.0' | |
permissions: | |
contents: read | |
jobs: | |
detect-noop: | |
runs-on: ubuntu-22.04 | |
outputs: | |
noop: ${{ steps.noop.outputs.should_skip }} | |
steps: | |
- name: Detect No-op Changes | |
id: noop | |
uses: fkirc/skip-duplicate-actions@f75f66ce1886f00957d99748a42c724f4330bdcf | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
paths_ignore: '["**.md", "**.mdx", "**.png", "**.jpg"]' | |
do_not_skip: '["workflow_dispatch", "schedule", "push"]' | |
continue-on-error: true | |
server-unit-tests: | |
runs-on: ubuntu-22.04 | |
needs: detect-noop | |
if: needs.detect-noop.outputs.noop != 'true' | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@6ccd57f4c5d15bdc2fef309bd9fb6cc9db2ef1c6 | |
with: | |
submodules: true | |
- name: Cache Go Dependencies | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 | |
with: | |
path: .work/pkg | |
key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-pkg- | |
- name: Install ginkgo | |
run: | | |
sudo sed -i 's/azure\.//' /etc/apt/sources.list | |
sudo apt-get update | |
sudo apt-get install -y golang-ginkgo-dev | |
- name : Set up MySQL | |
uses: mirromutth/[email protected] | |
with: | |
mysql database: 'kubevela' | |
mysql root password: 'kubevelaSQL123' | |
- name: Set up Postgres | |
uses: Harmon758/postgresql-action@v1 | |
with: | |
postgresql version: '11' | |
postgresql db: 'kubevela' | |
postgresql user: 'kubevela' | |
postgresql password: 'Kubevela-123' | |
- name: Start MongoDB | |
uses: supercharge/mongodb-github-action@5a87bd81f88e2a8b195f8b7b656f5cda1350815a # 1.11.0 | |
with: | |
mongodb-version: '5.0' | |
# TODO need update action version to resolve node 12 deprecated. | |
- name: install Kubebuilder | |
uses: RyanSiu1995/kubebuilder-action@e7e4de1c1eaf1d089b9a186f7526239acadf0b40 | |
with: | |
version: 3.1.0 | |
kubebuilderOnly: false | |
kubernetesVersion: v1.26.0 | |
- name: Run api server unit test | |
run: make unit-test-server | |
- name: Upload coverage report | |
uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
file: ./coverage.txt | |
flags: apiserver-unittests | |
name: codecov-umbrella | |
server-e2e-tests: | |
runs-on: ubuntu-22.04 | |
needs: [ detect-noop ] | |
if: needs.detect-noop.outputs.noop != 'true' | |
strategy: | |
matrix: | |
k8s-version: ["v1.26"] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.k8s-version }} | |
cancel-in-progress: true | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@6ccd57f4c5d15bdc2fef309bd9fb6cc9db2ef1c6 | |
with: | |
submodules: true | |
- name: Build docker image | |
id: docker_build | |
uses: docker/build-push-action@1a162644f9a7e87d8f4b053101d1d9a712edc18c | |
with: | |
context: ./ | |
build-args: | | |
GOPROXY=https://proxy.golang.org | |
file: ./Dockerfile.e2e | |
platforms: linux/amd64 | |
push: false | |
tags: oamdev/velaux:latest | |
- name: Tear down K3d if exist | |
run: | | |
k3d cluster delete || true | |
k3d cluster delete worker || true | |
- name: Calculate K3d args | |
run: | | |
EGRESS_ARG="" | |
if [[ "${{ matrix.k8s-version }}" == v1.26 ]]; then | |
EGRESS_ARG="--k3s-arg --egress-selector-mode=disabled@server:0" | |
fi | |
echo "EGRESS_ARG=${EGRESS_ARG}" >> $GITHUB_ENV | |
- name: Setup K3d (Hub) | |
uses: nolar/setup-k3d-k3s@293b8e5822a20bc0d5bcdd4826f1a665e72aba96 | |
with: | |
version: ${{ matrix.k8s-version }} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
k3d-args: ${{ env.EGRESS_ARG }} | |
- name: Setup K3d (Worker) | |
uses: nolar/setup-k3d-k3s@293b8e5822a20bc0d5bcdd4826f1a665e72aba96 | |
with: | |
version: ${{ matrix.k8s-version }} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
k3d-name: worker | |
k3d-args: --kubeconfig-update-default=false --network=k3d-k3s-default ${{ env.EGRESS_ARG }} | |
- name: Kind Cluster (Worker) | |
run: | | |
internal_ip=$(docker network inspect k3d-k3s-default|jq ".[0].Containers"| jq -r '.[]| select(.Name=="k3d-worker-server-0")|.IPv4Address' | cut -d/ -f1) | |
k3d kubeconfig get worker > /tmp/worker.client.kubeconfig | |
cp /tmp/worker.client.kubeconfig /tmp/worker.kubeconfig | |
sed -i "s/0.0.0.0:[0-9]\+/$internal_ip:6443/" /tmp/worker.kubeconfig | |
- name: Setup KubeVela core environment | |
run: | | |
make e2e-setup-core | |
make start-addon-mock-server | |
make load-image | |
make enable-addon-no-replicas | |
- name: Run server e2e test | |
run: | | |
export ALIYUN_ACCESS_KEY_ID=${{ secrets.ALIYUN_ACCESS_KEY_ID }} | |
export ALIYUN_ACCESS_KEY_SECRET=${{ secrets.ALIYUN_ACCESS_KEY_SECRET }} | |
export GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} | |
docker run --rm -v `pwd`/e2e-plugins:/plugins oamdev/velaux:latest cp -r -a /app/velaux/plugins/ /plugins/ | |
make e2e-server-test | |
- name: Test addon enable | |
run: | | |
make enable-addon | |
- name: Upload coverage report | |
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: /tmp/e2e_apiserver_test.out | |
flags: server-e2e-tests | |
name: codecov-umbrella | |
- name: Clean e2e profile | |
run: rm /tmp/e2e_apiserver_test.out |