Skip to content

Bump the kubernetes group across 1 directory with 9 updates #2436

Bump the kubernetes group across 1 directory with 9 updates

Bump the kubernetes group across 1 directory with 9 updates #2436

Workflow file for this run

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
name: CI
on:
push:
branches:
- master
- main
pull_request:
branches:
- master
- main
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
env:
GOLANGCI_LINT_VERSION: v2.6.2
# Must match PROTOC_VERSION in tools/make/common.mk: protoc stamps its own
# version into every generated file, so a different one here rewrites them
# all and make check-generate can never pass.
PROTOC_VERSION: v33.0
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
timeout-minutes: 20
if: github.repository == 'apache/dubbo-kubernetes'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache-dependency-path: go.sum
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v8
with:
version: ${{ env.GOLANGCI_LINT_VERSION }}
- name: Run shellcheck
run: make lint-shell
check:
name: Check Repo Hygiene
runs-on: ubuntu-latest
timeout-minutes: 15
if: github.repository == 'apache/dubbo-kubernetes'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache-dependency-path: go.sum
- name: Verify dependencies
run: |
go mod download
go mod verify
- name: Check go.mod/go.sum are tidy
run: make check-tidy
# Generated sources are never merged line by line (see .gitattributes);
# they are regenerated. This proves the committed output still matches
# what the generators produce, so a hand-edited or stale generated file
# fails here with a diff instead of later as a compile error.
- name: Install protoc
uses: arduino/setup-protoc@v3
with:
version: ${{ env.PROTOC_VERSION }}
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Check generated sources are up to date
run: make check-generate
- name: Check License Header
uses: apache/skywalking-eyes/header@v0.6.0
unit-test:
name: Unit Tests
runs-on: ubuntu-latest
timeout-minutes: 30
if: github.repository == 'apache/dubbo-kubernetes'
permissions:
contents: read
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache-dependency-path: go.sum
- name: Run unit tests with race detector and coverage
run: make test-coverage
- name: Upload test coverage
if: always()
uses: actions/upload-artifact@v4
with:
name: test-coverage
path: coverage.txt
retention-days: 7
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage.txt
flags: unittests
name: codecov-umbrella
fail_ci_if_error: true
use_oidc: true
performance:
name: Performance Scale Smoke
runs-on: ubuntu-latest
timeout-minutes: 15
if: github.repository == 'apache/dubbo-kubernetes'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache-dependency-path: go.sum
- name: Exercise representative xDS push scale
run: make benchmark-smoke
build:
name: Build (${{ matrix.goos }}/${{ matrix.goarch }})
runs-on: ubuntu-latest
timeout-minutes: 20
if: github.repository == 'apache/dubbo-kubernetes'
strategy:
fail-fast: false
matrix:
include:
- goos: linux
goarch: amd64
- goos: linux
goarch: arm64
- goos: darwin
goarch: amd64
- goos: darwin
goarch: arm64
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache-dependency-path: go.sum
- name: Build all binaries
run: make build GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }}
- name: Compile tests (vet whole tree)
if: matrix.goos == 'linux' && matrix.goarch == 'amd64'
run: go build ./...
helm:
name: Helm Charts
runs-on: ubuntu-latest
timeout-minutes: 15
if: github.repository == 'apache/dubbo-kubernetes'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Helm
run: tools/ci/install-helm.sh v3.16.4
- name: Lint and render charts
run: make lint-helm
e2e:
name: E2E Smoke (kind)
runs-on: ubuntu-latest
timeout-minutes: 40
if: github.repository == 'apache/dubbo-kubernetes'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Helm
run: tools/ci/install-helm.sh v3.16.4
- name: Install kind
run: tools/ci/install-kind.sh v0.30.0
- name: Run e2e smoke test
env:
UPGRADE_FROM_VERSION: '0.4.3'
run: make test-e2e
activation-e2e:
name: Activation E2E (KEDA)
runs-on: ubuntu-24.04-arm
timeout-minutes: 45
if: github.repository == 'apache/dubbo-kubernetes'
env:
DOCKER_DEFAULT_PLATFORM: linux/arm64
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Verify native ARM64 runner
run: |
test "$(uname -m)" = "aarch64"
test "$(docker info --format '{{.Architecture}}')" = "aarch64"
# Pin the data plane source that implements request holding and demand
# reporting. A floating main branch could make a control-plane PR pass
# against behavior it did not declare.
- name: Checkout dxgate
uses: actions/checkout@v4
with:
repository: kdubbo/dxgate
ref: c8e423501f103c7faa08a0cee7a43680a5054138
path: .e2e/dxgate
- name: Build dxgate activation image
run: docker build -t kdubbo/dxgate:ga-e2e .e2e/dxgate
- name: Install Helm
run: tools/ci/install-helm.sh v3.16.4
- name: Install kind
run: tools/ci/install-kind.sh v0.30.0
- name: Run real KEDA activation
env:
ACTIVATION_E2E: '1'
AI_MESH_E2E: '1'
CLUSTER_NAME: dubbo-activation-ga
DXGATE_IMAGE: kdubbo/dxgate:ga-e2e
IMAGE: kdubbo/dubbod:activation-ga-e2e
UPGRADE_FROM_IMAGE: kdubbo/dubbod:activation-ga-e2e
UPGRADE_FROM_VERSION: '0.4.3'
run: make test-e2e
required:
name: CI Required
runs-on: ubuntu-slim
timeout-minutes: 5
# Evaluate after all dependencies settle, but do not keep a superseded
# workflow alive and blocking the next run in this PR's concurrency group.
if: ${{ always() && !cancelled() }}
needs:
- lint
- check
- unit-test
- performance
- build
- helm
- e2e
- activation-e2e
steps:
- name: Verify required jobs passed
env:
LINT_RESULT: ${{ needs.lint.result }}
CHECK_RESULT: ${{ needs.check.result }}
UNIT_TEST_RESULT: ${{ needs.unit-test.result }}
PERFORMANCE_RESULT: ${{ needs.performance.result }}
BUILD_RESULT: ${{ needs.build.result }}
HELM_RESULT: ${{ needs.helm.result }}
E2E_RESULT: ${{ needs.e2e.result }}
ACTIVATION_E2E_RESULT: ${{ needs.activation-e2e.result }}
run: |
failed=0
for job_result in \
"lint=${LINT_RESULT}" \
"check=${CHECK_RESULT}" \
"unit-test=${UNIT_TEST_RESULT}" \
"performance=${PERFORMANCE_RESULT}" \
"build=${BUILD_RESULT}" \
"helm=${HELM_RESULT}" \
"e2e=${E2E_RESULT}" \
"activation-e2e=${ACTIVATION_E2E_RESULT}"; do
job="${job_result%%=*}"
result="${job_result#*=}"
echo "${job}: ${result}"
if [[ "${result}" != "success" ]]; then
failed=1
fi
done
if [[ "${failed}" -ne 0 ]]; then
echo "Required CI job did not succeed." >&2
exit 1
fi