SCHEDULED #30
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: SCHEDULED | |
on: | |
workflow_dispatch: | |
schedule: | |
# Executes e2e compatibility test every Wednesday at 1:00 AM and if you need to convert to UTC+8 timezone, you need to -8 hours for cron expression | |
- cron: "0 17 * * 2" | |
env: | |
CONTAINER_RUN_OPTIONS: " " | |
GINKGO_VERSION: "v2.9.5" | |
jobs: | |
lint: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
name: lint | |
env: | |
GOPATH: /home/runner/work/${{ github.repository }} | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.21.x | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
path: ./src/github.com/${{ github.repository }} | |
- uses: actions/cache@v4 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get install -y jq | |
image-prepare: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
name: Prepare kubeedge/build-tools image | |
steps: | |
- name: Pull kubeedge/build-tools image | |
run: | | |
docker pull kubeedge/build-tools:1.21.11-ke1 | |
mkdir -p /home/runner/build-tools/ | |
docker save kubeedge/build-tools:1.21.11-ke1 > /home/runner/build-tools/build-tools.tar | |
- name: Temporarily save kubeedge/build-tools image | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-tools-docker-artifact | |
path: /home/runner/build-tools | |
build: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
name: Multiple build | |
needs: image-prepare | |
steps: | |
- uses: actions/cache@v4 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Retrieve saved kubeedge/build-tools image | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-tools-docker-artifact | |
path: /home/runner/build-tools | |
- name: docker load kubeedge/build-tools image | |
run: | | |
docker load < /home/runner/build-tools/build-tools.tar | |
- run: make | |
- run: make smallbuild | |
- run: make crossbuild | |
- run: make crossbuild ARM_VERSION=GOARM7 | |
- run: make crossbuild WHAT=cloudcore ARM_VERSION=GOARM8 | |
k8s_compatibility_schedule_test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
protocol: | |
- WebSocket | |
- QUIC | |
version: | |
- v1.29.2 | |
- v1.28.6 | |
- v1.27.10 | |
- v1.26.13 | |
- v1.25.16 | |
timeout-minutes: 90 | |
name: E2e k8s compatibility test | |
needs: image-prepare | |
env: | |
GO111MODULE: on | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.21.x | |
- uses: actions/cache@v4 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
run: | | |
command -v ginkgo || go install github.com/onsi/ginkgo/v2/ginkgo@${{ env.GINKGO_VERSION }} | |
go install sigs.k8s.io/[email protected] | |
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.29.5/bin/linux/amd64/kubectl && sudo install kubectl /usr/local/bin/kubectl | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Retrieve saved kubeedge/build-tools image | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-tools-docker-artifact | |
path: /home/runner/build-tools | |
- name: docker load kubeedge/build-tools image | |
run: | | |
docker load < /home/runner/build-tools/build-tools.tar | |
- name: enable cri config in containerd service | |
run: | | |
containerd config default | sudo tee /etc/containerd/config.toml && sudo systemctl restart containerd.service | |
- run: | | |
export PROTOCOL=${{ matrix.protocol }} | |
export KIND_IMAGE=kindest/node:${{ matrix.version }} | |
export CONTAINER_RUNTIME="containerd" | |
make e2e | |
keadm_compatibility_e2e_test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
version: | |
- v1.19.0 | |
- v1.18.1 | |
timeout-minutes: 90 | |
name: Keadm compatibility e2e test | |
env: | |
GO111MODULE: on | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.21.x | |
- uses: actions/cache@v4 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
run: | | |
command -v ginkgo || go install github.com/onsi/ginkgo/v2/ginkgo@${{ env.GINKGO_VERSION }} | |
go install sigs.k8s.io/[email protected] | |
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.29.5/bin/linux/amd64/kubectl && sudo install kubectl /usr/local/bin/kubectl | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Helm | |
uses: azure/setup-helm@v3 | |
with: | |
version: v3.4.0 | |
- name: enable cri config in containerd service | |
run: | | |
containerd config default | sudo tee /etc/containerd/config.toml && sudo systemctl restart containerd.service | |
- name: cleanup images | |
run: docker system prune -a -f | |
- run: | | |
export CLOUD_EDGE_VERSION=${{ matrix.version }} | |
make keadm_compatibility_e2e |