Skip to content

KUBEAN_E2E_TEST_CI #690

KUBEAN_E2E_TEST_CI

KUBEAN_E2E_TEST_CI #690

name: KUBEAN_E2E_TEST_CI
on:
workflow_dispatch: #manual run
workflow_call: # called by Auto Release CI
schedule:
- cron: '0 0 * * FRI' # on every weekend for P3 jobs in weekend with if condition (if: github.event.schedule == '0 0 * * FRI')
- cron: '0 7 * * *' # default: on every night for P2 jobs
- cron: '0 0 1 1 *' # next at 2024-01-01 00:00:00
env:
VSPHERE_USER: ${{ secrets.VSPHERE_USER }}
VSPHERE_PASSWD: ${{ secrets.VSPHERE_PASSWD }}
AMD_ROOT_PASSWORD: ${{ secrets.AMD_ROOT_PASSWORD }}
KYLIN_VM_PASSWORD: ${{ secrets.KYLIN_VM_PASSWORD }}
jobs:
build-push-for-e2e:
uses: ./.github/workflows/build-push-for-e2e.yml
get_helm_version:
runs-on: ubuntu-latest
outputs:
CONTAINER_TAG: ${{ steps.get_variables.outputs.CONTAINER_TAG }}
HELM_CHART_VERSION: ${{ steps.get_variables.outputs.HELM_CHART_VERSION }}
TAG_SECOND_PART: ${{ steps.get_variables.outputs.TAG_SECOND_PART }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Get HELM_CHART_VERSION
id: get_variables
run: |
CONTAINER_TAG="$(git describe --tags --abbrev=8 --dirty)-e2e"
HELM_CHART_VERSION=`echo ${CONTAINER_TAG}|awk -F "-" '{print $1 }'`
TAG_SECOND_PART=`echo ${CONTAINER_TAG}|awk -F "-" '{print $2 }'`
if [[ ${TAG_SECOND_PART} =~ rc[0-9]+ ]];then
HELM_CHART_VERSION=`echo ${CONTAINER_TAG}|awk -F "-" '{print $1"-"$2 }'`
fi
echo "CONTAINER_TAG=$CONTAINER_TAG" >> "$GITHUB_OUTPUT"
echo "HELM_CHART_VERSION=$HELM_CHART_VERSION" >> "$GITHUB_OUTPUT"
echo "TAG_SECOND_PART=$TAG_SECOND_PART" >> "$GITHUB_OUTPUT"
centos_calico_airgap:
#runs-on: [self-hosted, offline] #for test
runs-on: ubuntu-latest
needs: [get_helm_version, build-push-for-e2e]
env:
CONTAINER_TAG: ${{ needs.get_helm_version.outputs.CONTAINER_TAG }}
HELM_CHART_VERSION: ${{ needs.get_helm_version.outputs.HELM_CHART_VERSION }}
TAG_SECOND_PART: ${{ needs.get_helm_version.outputs.TAG_SECOND_PART }}
steps:
- name: Set env for this job
run: |
OS_TYPE="ROCKY8"
ARCH="amd64"
Network_TYPE="calico"
GAP_TYPE="OFFLINE"
echo "OS_TYPE=${OS_TYPE,,}" >> ${GITHUB_ENV}
echo "ARCH=${ARCH,,}" >> ${GITHUB_ENV}
echo "Network_TYPE=${Network_TYPE,,}" >> ${GITHUB_ENV}
echo "GAP_TYPE=${GAP_TYPE,,}" >> ${GITHUB_ENV}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v4
with:
go-version: 1.22.4
- name: centos_calico_airgap
run: |
# export runner_name=${{ runner.name }}
# bash ./hack/newE2E.sh
echo "network online testcases"
centos_calico_online: # skip
#runs-on: [self-hosted, online] #for test
runs-on: ubuntu-latest
needs: [centos_calico_airgap, get_helm_version]
env:
CONTAINER_TAG: ${{ needs.get_helm_version.outputs.CONTAINER_TAG }}
HELM_CHART_VERSION: ${{ needs.get_helm_version.outputs.HELM_CHART_VERSION }}
TAG_SECOND_PART: ${{ needs.get_helm_version.outputs.TAG_SECOND_PART }}
if: github.event.schedule == '0 0 1 1 *'
steps:
- name: Set env for this job
run: |
OS_TYPE="ROCKY8"
ARCH="amd64"
Network_TYPE="calico"
GAP_TYPE="ONLINE"
echo "OS_TYPE=${OS_TYPE,,}" >> ${GITHUB_ENV}
echo "ARCH=${ARCH,,}" >> ${GITHUB_ENV}
echo "Network_TYPE=${Network_TYPE,,}" >> ${GITHUB_ENV}
echo "GAP_TYPE=${GAP_TYPE,,}" >> ${GITHUB_ENV}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v4
with:
go-version: 1.22.4
- name: centos_calico_online
continue-on-error: ${{ vars.CENTOS_CALICO_ONLINE_ALLOW_FAILURE != 'false' }}
run: |
# export runner_name=${{ runner.name }}
# bash ./hack/newE2E.sh
echo "network online testcases"
centos_cilium_online: # skip
# This is actually e2e_offline action
# runs-on: [self-hosted, offline] #for test
runs-on: ubuntu-latest # for test
needs: [centos_calico_airgap, get_helm_version]
env:
CONTAINER_TAG: ${{ needs.get_helm_version.outputs.CONTAINER_TAG }}
HELM_CHART_VERSION: ${{ needs.get_helm_version.outputs.HELM_CHART_VERSION }}
TAG_SECOND_PART: ${{ needs.get_helm_version.outputs.TAG_SECOND_PART }}
#if: github.event.schedule == '0 0 * * FRI'
if: github.event.schedule == '0 0 1 1 *'
steps:
- name: Install yq tool
uses: mikefarah/yq@v4.44.5
- name: Set env for this job
run: |
OS_TYPE="ROCKY8"
ARCH="amd64"
Network_TYPE="cilium"
GAP_TYPE="ONLINE"
echo "OS_TYPE=${OS_TYPE,,}" >> ${GITHUB_ENV}
echo "ARCH=${ARCH,,}" >> ${GITHUB_ENV}
echo "Network_TYPE=${Network_TYPE,,}" >> ${GITHUB_ENV}
echo "GAP_TYPE=${GAP_TYPE,,}" >> ${GITHUB_ENV}
- uses: actions/checkout@v3
with:
fetch-depth: 0
# - uses: actions/setup-go@v4
# with:
# go-version: 1.22.4
- name: centos_cilium_online
continue-on-error: ${{ vars.CENTOS_CILIUM_ONLINE_ALLOW_FAILURE != 'false' }}
run: |
# export runner_name=${{ runner.name }}
# bash ./hack/newE2E.sh
echo "network online testcases"
centos_cilium_airgap:
# runs-on: [self-hosted, offline]
runs-on: [self-hosted, online] # test network testcases online in Jun
needs: [centos_calico_airgap, get_helm_version]
env:
CONTAINER_TAG: ${{ needs.get_helm_version.outputs.CONTAINER_TAG }}
HELM_CHART_VERSION: ${{ needs.get_helm_version.outputs.HELM_CHART_VERSION }}
TAG_SECOND_PART: ${{ needs.get_helm_version.outputs.TAG_SECOND_PART }}
steps:
- name: Set env for this job
run: |
OS_TYPE="ROCKY8"
ARCH="amd64"
Network_TYPE="cilium"
#GAP_TYPE="OFFLINE" # for test
GAP_TYPE="ONLINE"
echo "OS_TYPE=${OS_TYPE,,}" >> ${GITHUB_ENV}
echo "ARCH=${ARCH,,}" >> ${GITHUB_ENV}
echo "Network_TYPE=${Network_TYPE,,}" >> ${GITHUB_ENV}
echo "GAP_TYPE=${GAP_TYPE,,}" >> ${GITHUB_ENV}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v4
with:
go-version: 1.22.4
- name: centos_cilium_airgap
continue-on-error: ${{ vars.CENTOS_CILIUM_AIRGAP_ALLOW_FAILURE != 'false' }}
run: |
export runner_name=${{ runner.name }}
export OS_TYPE="ROCKY8" # for test
export GAP_TYPE="ONLINE" # for test
bash ./hack/newE2E.sh
redhat_calico_online:
runs-on: [self-hosted, online]
needs: [centos_calico_airgap, get_helm_version]
env:
CONTAINER_TAG: ${{ needs.get_helm_version.outputs.CONTAINER_TAG }}
HELM_CHART_VERSION: ${{ needs.get_helm_version.outputs.HELM_CHART_VERSION }}
TAG_SECOND_PART: ${{ needs.get_helm_version.outputs.TAG_SECOND_PART }}
#if: github.event.schedule == '0 0 * * FRI' #skip
if: github.event.schedule == '0 0 1 1 *'
steps:
- name: Set env for this job
run: |
OS_TYPE="REDHAT8"
ARCH="amd64"
Network_TYPE="calico"
GAP_TYPE="ONLINE"
echo "OS_TYPE=${OS_TYPE,,}" >> ${GITHUB_ENV}
echo "ARCH=${ARCH,,}" >> ${GITHUB_ENV}
echo "Network_TYPE=${Network_TYPE,,}" >> ${GITHUB_ENV}
echo "GAP_TYPE=${GAP_TYPE,,}" >> ${GITHUB_ENV}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v4
with:
go-version: 1.22.4
- name: redhat_calico_online
continue-on-error: ${{ vars.REDHAT_CALICO_ONLINE_ALLOW_FAILURE != 'false' }}
run: |
export runner_name=${{ runner.name }}
bash ./hack/newE2E.sh
redhat_calico_airgap:
runs-on: [self-hosted, offline]
needs: [centos_calico_airgap, get_helm_version]
env:
CONTAINER_TAG: ${{ needs.get_helm_version.outputs.CONTAINER_TAG }}
HELM_CHART_VERSION: ${{ needs.get_helm_version.outputs.HELM_CHART_VERSION }}
TAG_SECOND_PART: ${{ needs.get_helm_version.outputs.TAG_SECOND_PART }}
if: github.event.schedule == '0 0 1 1 *'
steps:
- name: Set env for this job
run: |
OS_TYPE="REDHAT8"
ARCH="amd64"
Network_TYPE="calico"
GAP_TYPE="OFFLINE"
echo "OS_TYPE=${OS_TYPE,,}" >> ${GITHUB_ENV}
echo "ARCH=${ARCH,,}" >> ${GITHUB_ENV}
echo "Network_TYPE=${Network_TYPE,,}" >> ${GITHUB_ENV}
echo "GAP_TYPE=${GAP_TYPE,,}" >> ${GITHUB_ENV}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v4
with:
go-version: 1.22.4
- name: redhat_calico_airgap
continue-on-error: ${{ vars.REDHAT_CALICO_AIRGAP_ALLOW_FAILURE != 'false' }}
run: |
export runner_name=${{ runner.name }}
bash ./hack/newE2E.sh
redhat_cilium_airgap:
runs-on: [self-hosted, offline]
needs: [centos_calico_airgap, get_helm_version]
env:
CONTAINER_TAG: ${{ needs.get_helm_version.outputs.CONTAINER_TAG }}
HELM_CHART_VERSION: ${{ needs.get_helm_version.outputs.HELM_CHART_VERSION }}
TAG_SECOND_PART: ${{ needs.get_helm_version.outputs.TAG_SECOND_PART }}
if: github.event.schedule == '0 0 1 1 *'
steps:
- name: Set env for this job
run: |
OS_TYPE="REDHAT8"
ARCH="amd64"
Network_TYPE="cilium"
GAP_TYPE="OFFLINE"
echo "OS_TYPE=${OS_TYPE,,}" >> ${GITHUB_ENV}
echo "ARCH=${ARCH,,}" >> ${GITHUB_ENV}
echo "Network_TYPE=${Network_TYPE,,}" >> ${GITHUB_ENV}
echo "GAP_TYPE=${GAP_TYPE,,}" >> ${GITHUB_ENV}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v4
with:
go-version: 1.22.4
- name: redhat_cilium_airgap
continue-on-error: ${{ vars.REDHAT_CILIUM_AIRGAP_ALLOW_FAILURE != 'false' }}
run: |
export runner_name=${{ runner.name }}
bash ./hack/newE2E.sh
redhat_cilium_online:
needs: [get_helm_version, centos_calico_online, centos_cilium_online, centos_cilium_airgap, redhat_calico_online, redhat_calico_airgap, redhat_cilium_airgap]
runs-on: [self-hosted, online]
env:
CONTAINER_TAG: ${{ needs.get_helm_version.outputs.CONTAINER_TAG }}
HELM_CHART_VERSION: ${{ needs.get_helm_version.outputs.HELM_CHART_VERSION }}
TAG_SECOND_PART: ${{ needs.get_helm_version.outputs.TAG_SECOND_PART }}
# if: github.event.schedule == '0 0 * * FRI' #skip
if: github.event.schedule == '0 0 1 1 *'
steps:
- name: Set env for this job
run: |
OS_TYPE="REDHAT8"
ARCH="amd64"
Network_TYPE="cilium"
GAP_TYPE="ONLINE"
echo "OS_TYPE=${OS_TYPE,,}" >> ${GITHUB_ENV}
echo "ARCH=${ARCH,,}" >> ${GITHUB_ENV}
echo "Network_TYPE=${Network_TYPE,,}" >> ${GITHUB_ENV}
echo "GAP_TYPE=${GAP_TYPE,,}" >> ${GITHUB_ENV}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v4
with:
go-version: 1.22.4
- name: redhat_cilium_online
continue-on-error: ${{ vars.REDHAT_CILIUM_ONLINE_ALLOW_FAILURE != 'false' }}
run: |
export runner_name=${{ runner.name }}
bash ./hack/newE2E.sh
kylin_calico_online:
needs: [get_helm_version, centos_calico_online, centos_cilium_online, centos_cilium_airgap, redhat_calico_online, redhat_calico_airgap, redhat_cilium_airgap]
runs-on: [self-hosted, online]
env:
CONTAINER_TAG: ${{ needs.get_helm_version.outputs.CONTAINER_TAG }}
HELM_CHART_VERSION: ${{ needs.get_helm_version.outputs.HELM_CHART_VERSION }}
TAG_SECOND_PART: ${{ needs.get_helm_version.outputs.TAG_SECOND_PART }}
#if: github.event.schedule == '0 0 * * FRI' #skip
if: github.event.schedule == '0 0 1 1 *'
steps:
- name: Set env for this job
run: |
OS_TYPE="kylin"
ARCH="arm"
Network_TYPE="calico"
GAP_TYPE="ONLINE"
echo "OS_TYPE=${OS_TYPE,,}" >> ${GITHUB_ENV}
echo "ARCH=${ARCH,,}" >> ${GITHUB_ENV}
echo "Network_TYPE=${Network_TYPE,,}" >> ${GITHUB_ENV}
echo "GAP_TYPE=${GAP_TYPE,,}" >> ${GITHUB_ENV}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v4
with:
go-version: 1.22.4
- name: kylin_calico_online
continue-on-error: ${{ vars.KYLIN_CALICO_ONLINE_ALLOW_FAILURE != 'false' }}
run: |
export runner_name=${{ runner.name }}
bash ./hack/newE2E.sh
kylin_calico_airgap:
needs: [get_helm_version, centos_calico_online, centos_cilium_online, centos_cilium_airgap, redhat_calico_online, redhat_calico_airgap, redhat_cilium_airgap]
runs-on: [self-hosted, offline]
env:
CONTAINER_TAG: ${{ needs.get_helm_version.outputs.CONTAINER_TAG }}
HELM_CHART_VERSION: ${{ needs.get_helm_version.outputs.HELM_CHART_VERSION }}
TAG_SECOND_PART: ${{ needs.get_helm_version.outputs.TAG_SECOND_PART }}
#if: github.event.schedule == '0 0 * * FRI' #skip
if: github.event.schedule == '0 0 1 1 *'
steps:
- name: Set env for this job
run: |
OS_TYPE="kylin"
ARCH="arm"
Network_TYPE="calico"
GAP_TYPE="OFFLINE"
echo "OS_TYPE=${OS_TYPE,,}" >> ${GITHUB_ENV}
echo "ARCH=${ARCH,,}" >> ${GITHUB_ENV}
echo "Network_TYPE=${Network_TYPE,,}" >> ${GITHUB_ENV}
echo "GAP_TYPE=${GAP_TYPE,,}" >> ${GITHUB_ENV}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v4
with:
go-version: 1.22.4
- name: kylin_calico_airgap
continue-on-error: ${{ vars.KYLIN_CALICO_AIRGAP_ALLOW_FAILURE != 'false' }}
run: |
export runner_name=${{ runner.name }}
bash ./hack/newE2E.sh