Run conformance test with Antrea release-1.14 {{ inputs.distro }} image and K8s #2
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: Manually run upstream conformance test on Linux | |
run-name: Run ${{ inputs.test-suite }} test with Antrea ${{ inputs.antrea-version }} {{ inputs.distro }} image and K8s ${{ inputs.k8s-version }} | |
on: | |
workflow_dispatch: | |
inputs: | |
antrea-version: | |
description: The Antrea version to test. It could be a SHA-1 value, a branch, or a tag (e.g. a7b012b, release-1.12, v1.12.0). The main branch will be used if empty. | |
required: false | |
antrea-values: | |
description: The Antrea Chart values. Multiple values can be separated with commas (e.g. key1=val1,key2=val2). Default configuration will be tested if empty. | |
required: false | |
distro: | |
description: The Linux distribution to test. Ubuntu will be used if empty. | |
type: choice | |
options: | |
- ubuntu | |
- ubi | |
default: ubuntu | |
k8s-version: | |
description: The K8s version (e.g. v1.27.1) to test. Kind's default K8s version will be used if empty. | |
required: false | |
test-suite: | |
description: The test suite to run. Check run-k8s-e2e-tests.sh for which test cases these values represent. | |
type: choice | |
options: | |
- whole-conformance | |
- conformance | |
- network-policy | |
- sig-network | |
- all | |
default: whole-conformance | |
required: true | |
always-upload-logs: | |
description: Always upload logs regardless of the test result. | |
type: boolean | |
default: false | |
jobs: | |
test: | |
name: Run tests | |
runs-on: [ubuntu-latest] | |
steps: | |
- name: Free disk space | |
# https://github.com/actions/virtual-environments/issues/709 | |
run: | | |
sudo apt-get clean | |
df -h | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ inputs.antrea-version }} | |
fetch-depth: 0 | |
show-progress: false | |
- name: Check if it is a released version | |
id: check-release | |
run: | | |
if git show-ref --tags --verify --quiet refs/tags/${{ inputs.antrea-version }}; then | |
echo "released=true" >> $GITHUB_OUTPUT | |
else | |
echo "released=false" >> $GITHUB_OUTPUT | |
fi | |
- name: Build Antrea image if required | |
if: ${{ steps.check-release.outputs.released == 'false' }} | |
run: | | |
./hack/build-antrea-linux-all.sh --pull --distro ${{ inputs.distro }} | |
- name: Install Kind | |
run: | | |
KIND_VERSION=$(head -n1 ./ci/kind/version) | |
curl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/download/${KIND_VERSION}/kind-$(uname)-amd64 | |
chmod +x ./kind | |
sudo mv kind /usr/local/bin | |
- name: Create K8s cluster | |
run: | | |
# The command also loads local antrea/antrea-ubuntu:latest into Nodes if it exists. | |
./ci/kind/kind-setup.sh create kind \ | |
--k8s-version "${{ inputs.k8s-version }}" \ | |
--images antrea/antrea-"${{ inputs.distro }}":latest | |
- name: Install Antrea | |
run: | | |
if [ ${{ steps.check-release.outputs.released }} == 'true' ]; then | |
helm repo add antrea https://charts.antrea.io | |
helm repo update | |
helm install --namespace kube-system antrea antrea/antrea --version "${{ inputs.antrea-version }}" \ | |
--set "${{ inputs.antrea-values }}" \ | |
--set image.repository=antrea/antrea-"${{ inputs.distro }}" | |
else | |
helm install --namespace kube-system antrea ./build/charts/antrea \ | |
--set image.repository=antrea/antrea-"${{ inputs.distro }}" \ | |
--set "${{ inputs.antrea-values }}" | |
fi | |
kubectl rollout status -n kube-system ds/antrea-agent --timeout=5m | |
- name: Run e2e tests | |
run: | | |
./ci/run-k8s-e2e-tests.sh "--e2e-${{ inputs.test-suite }}" | |
- name: Upload test log | |
uses: actions/upload-artifact@v4 | |
if: ${{ failure() || inputs.always-upload-logs }} | |
with: | |
name: sonobuoy.tar.gz | |
path: "*_sonobuoy_*.tar.gz" | |
retention-days: 7 |