From 4f34af23ba6058dd5242bec28075db41ceec4d0b Mon Sep 17 00:00:00 2001 From: Lan Luo Date: Thu, 9 Feb 2023 15:29:09 +0800 Subject: [PATCH] Change to include unit test data only Signed-off-by: Lan Luo Signed-off-by: Kumar Atish --- .github/workflows/build.yml | 149 ------- .github/workflows/conformance.yml | 92 ---- .github/workflows/go.yml | 228 ++-------- .github/workflows/golicense.yml | 67 --- .github/workflows/kind.yml | 717 ------------------------------ codecov.yaml | 3 +- 6 files changed, 35 insertions(+), 1221 deletions(-) delete mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/conformance.yml delete mode 100644 .github/workflows/golicense.yml delete mode 100644 .github/workflows/kind.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index e5978a9fd38..00000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,149 +0,0 @@ -name: Build and push latest image if needed - -on: - pull_request: - branches: - - main - - release-* - - feature/* - push: - branches: - - main - - release-* - - feature/* - -jobs: - check-changes: - name: Check whether tests need to be run based on diff - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - uses: antrea-io/has-changes@v2 - id: check_diff - with: - paths-ignore: docs/* ci/jenkins/* *.md hack/.notableofcontents - outputs: - has_changes: ${{ steps.check_diff.outputs.has_changes }} - - build: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' || github.event_name == 'push' }} - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - - name: Build Antrea amd64 Docker image without pushing to registry - if: ${{ github.repository != 'antrea-io/antrea' || github.event_name != 'push' || github.ref != 'refs/heads/main' }} - run: | - ./hack/build-antrea-linux-all.sh --pull - - name: Build and push Antrea amd64 Docker image to registry - if: ${{ github.repository == 'antrea-io/antrea' && github.event_name == 'push' && github.ref == 'refs/heads/main' }} - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - ./hack/build-antrea-linux-all.sh --pull --push-base-images - docker tag antrea/antrea-ubuntu:latest antrea/antrea-ubuntu-amd64:latest - docker push antrea/antrea-ubuntu-amd64:latest - - name: Trigger Antrea arm builds and multi-arch manifest update - if: ${{ github.repository == 'antrea-io/antrea' && github.event_name == 'push' && github.ref == 'refs/heads/main' }} - uses: benc-uk/workflow-dispatch@v1 - with: - repo: vmware-tanzu/antrea-build-infra - ref: refs/heads/main - workflow: Build Antrea ARM images and push manifest - token: ${{ secrets.ANTREA_BUILD_INFRA_WORKFLOW_DISPATCH_PAT }} - inputs: ${{ format('{{ "antrea-repository":"antrea-io/antrea", "antrea-ref":"{0}", "docker-tag":"{1}" }}', github.ref, 'latest') }} - - build-ubi: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' || github.event_name == 'push' }} - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - - name: Build Antrea UBI8 Docker image without pushing to registry - if: ${{ github.repository != 'antrea-io/antrea' || github.event_name != 'push' || github.ref != 'refs/heads/main' }} - run: | - ./hack/build-antrea-linux-all.sh --pull --distro ubi - - name: Build and push Antrea UBI8 Docker image to registry - if: ${{ github.repository == 'antrea-io/antrea' && github.event_name == 'push' && github.ref == 'refs/heads/main' }} - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - ./hack/build-antrea-linux-all.sh --pull --push-base-images --distro ubi - docker push antrea/antrea-ubi:latest - - build-scale: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' || github.event_name == 'push' }} - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - - name: Build Antrea Agent Simulator Docker image - run: make build-scale-simulator - - name: Push Antrea Agent Simulator Docker image to registry - if: ${{ github.repository == 'antrea-io/antrea' && github.event_name == 'push' && github.ref == 'refs/heads/main' }} - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - docker push antrea/antrea-ubuntu-simulator:latest - - build-windows: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' || github.event_name == 'push' }} - runs-on: [windows-2019] - steps: - - uses: actions/checkout@v3 - - name: Build Antrea Windows Docker image - run: make build-windows - - name: Push Antrea Windows Docker image to registry - if: ${{ github.repository == 'antrea-io/antrea' && github.event_name == 'push' && github.ref == 'refs/heads/main' }} - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - docker push antrea/antrea-windows:latest - shell: bash - - build-antrea-mc-controller: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' || github.event_name == 'push' }} - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - - name: Build antrea-mc-controller Docker image - run: make build-antrea-mc-controller - - name: Push antrea-mc-controller Docker image to registry - if: ${{ github.repository == 'antrea-io/antrea' && github.event_name == 'push' && github.ref == 'refs/heads/main' }} - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - docker push antrea/antrea-mc-controller:latest - - build-flow-aggregator: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' || github.event_name == 'push' }} - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - - name: Build flow-aggregator Docker image - run: make flow-aggregator-image - - name: Check flow-aggregator Docker image - run: docker run antrea/flow-aggregator --version - - name: Push flow-aggregator Docker image to registry - if: ${{ github.repository == 'antrea-io/antrea' && github.event_name == 'push' && github.ref == 'refs/heads/main' }} - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - docker push antrea/flow-aggregator:latest diff --git a/.github/workflows/conformance.yml b/.github/workflows/conformance.yml deleted file mode 100644 index 806269e6b35..00000000000 --- a/.github/workflows/conformance.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: Manually run upstream conformance test on Linux -run-name: Run ${{ inputs.test-suite }} test with Antrea ${{ inputs.antrea-version }} 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 - 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 - -env: - KIND_VERSION: v0.18.0 - -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@v3 - with: - ref: ${{ inputs.antrea-version }} - fetch-depth: 0 - - 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 - - name: Install Kind - run: | - 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 }}" - - 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 }}" - else - helm install --namespace kube-system antrea ./build/charts/antrea \ - --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@v3 - if: ${{ failure() || inputs.always-upload-logs }} - with: - name: sonobuoy.tar.gz - path: "*_sonobuoy_*.tar.gz" - retention-days: 7 diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 275e4eae7d1..a3b6593a019 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -11,36 +11,37 @@ on: - release-* - feature/* -jobs: - check-changes: - name: Check whether tests need to be run based on diff - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - uses: antrea-io/has-changes@v2 - id: check_diff - with: - paths-ignore: docs/* ci/jenkins/* *.md hack/.notableofcontents - outputs: - has_changes: ${{ steps.check_diff.outputs.has_changes }} +env: + go-cache-name: go +jobs: # test-unit-ubuntu and test-unit-windows are intentionally not merged into one job with os matrix, otherwise the job # wouldn't be expanded if it's skipped and the report of the required check would be missing. # See https://github.com/antrea-io/antrea/issues/3563. test-unit-ubuntu: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} name: Unit test (ubuntu-latest) runs-on: [ubuntu-latest] steps: - name: Check-out code uses: actions/checkout@v3 - name: Set up Go using version from go.mod - uses: actions/setup-go@v4 + uses: actions/setup-go@v3 with: go-version-file: 'go.mod' + - uses: actions/cache@v3 + with: + # In order: + # * Module download cache + # * Build cache (Linux) + # * Build cache (Mac) + path: | + ~/go/pkg/mod + ~/.cache/go-build + ~/Library/Caches/go-build + %LocalAppData%\go-build + key: ${{ runner.os }}-${{ env.go-cache-name }}-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-${{ env.go-cache-name }}- - name: Run unit tests run: make test-unit - name: Codecov @@ -53,17 +54,29 @@ jobs: fail_ci_if_error: ${{ github.event_name == 'push' }} test-unit-windows: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} name: Unit test (windows-2019) runs-on: [windows-2019] steps: - name: Check-out code uses: actions/checkout@v3 - name: Set up Go using version from go.mod - uses: actions/setup-go@v4 + uses: actions/setup-go@v3 with: go-version-file: 'go.mod' + - uses: actions/cache@v3 + with: + # In order: + # * Module download cache + # * Build cache (Linux) + # * Build cache (Mac) + path: | + ~/go/pkg/mod + ~/.cache/go-build + ~/Library/Caches/go-build + %LocalAppData%\go-build + key: ${{ runner.os }}-${{ env.go-cache-name }}-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-${{ env.go-cache-name }}- - name: Run unit tests run: make test-unit - name: Codecov @@ -73,177 +86,4 @@ jobs: file: .coverage/coverage-unit.txt flags: unit-tests name: codecov-unit-test - fail_ci_if_error: ${{ github.event_name == 'push' }} - - test-integration: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} - name: Integration test - runs-on: [ubuntu-latest] - steps: - - name: Check-out code - uses: actions/checkout@v3 - - name: Set up Go using version from go.mod - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Run integration tests - run: | - ./build/images/ovs/build.sh - NO_PULL=1 make docker-test-integration - - name: Run integration tests for multicluster - run: | - cd multicluster - make test-integration - - name: Codecov - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: .coverage/coverage-integration.txt,multicluster/.coverage/coverage-integration.txt - flags: integration-tests - name: codecov-integration-test - fail_ci_if_error: ${{ github.event_name == 'push' }} - - # golangci-lint-ubuntu and golangci-lint-macos are intentionally not merged into one job with os matrix, otherwise the - # job wouldn't be expanded if it's skipped and the report of the required check would be missing. - # See https://github.com/antrea-io/antrea/issues/3563. - golangci-lint-ubuntu: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} - name: Golangci-lint (ubuntu-latest) - runs-on: [ubuntu-latest] - steps: - - name: Check-out code - uses: actions/checkout@v3 - - name: Set up Go using version from go.mod - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Run golangci-lint - run: make golangci - - golangci-lint-macos: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} - name: Golangci-lint (macos-latest) - runs-on: [macos-latest] - steps: - - name: Check-out code - uses: actions/checkout@v3 - - name: Set up Go using version from go.mod - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Run golangci-lint - run: make golangci - - bin: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} - name: Build Antrea and antctl binaries - runs-on: [ubuntu-latest] - steps: - - name: Check-out code - uses: actions/checkout@v3 - - name: Set up Go using version from go.mod - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Build Antrea binaries for amd64 - run: GOARCH=amd64 make bin - - name: Build Antrea binaries for arm64 - run: GOARCH=arm64 make bin - - name: Build Antrea binaries for arm - run: GOARCH=arm make bin - - name: Build antctl binaries - run: make antctl - - name: Build Multi-cluster binaries - run: | - cd multicluster - make bin - - windows-bin: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} - name: Build Antrea Windows binaries - runs-on: [ubuntu-latest] - steps: - - name: Check-out code - uses: actions/checkout@v3 - - name: Set up Go using version from go.mod - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Build Antrea windows binaries - run: make windows-bin - - tidy-codegen-manifest: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} - name: Check tidy, code generation and manifest - runs-on: [ubuntu-latest] - steps: - - name: Check-out code - uses: actions/checkout@v3 - - name: Set up Go using version from go.mod - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - # tidy check need to be run before code generation which will regenerate codes. - - name: Check tidy - run: make test-tidy - - name: Check code generation - run: ./ci/check-codegen.sh - - name: Check manifest - run: ./ci/check-manifest.sh - - name: Check copyright - run: ./ci/check-copyright.sh - - verify: - name: Verify docs and spelling - runs-on: [ubuntu-latest] - steps: - - name: Check-out code - uses: actions/checkout@v3 - - name: Set up Go using version from go.mod - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Run verify scripts - run: make verify - - name: Checking for broken Markdown links - if: ${{ github.event_name == 'pull_request' }} - uses: gaurav-nelson/github-action-markdown-link-check@v1 - with: - # Check modified files only for pull requests. Cronjob "Verify docs" takes care of checking all markdown files. - check-modified-files-only: yes - base-branch: ${{ github.base_ref }} - config-file: 'hack/.md_links_config.json' - - name: Markdownlint - run: | - sudo npm install -g markdownlint-cli@0.31.1 - make markdownlint - - name: Checking whether autogenerated Helm chart documentation is up-to-date - working-directory: build/charts/ - run: | - make helm-docs - DIFF=$(git diff .) - if [ -n "$DIFF" ]; then - echo "The Helm chart documentation is out-of-date; please run 'make helm-docs' in 'build/charts/' and commit the changes" - exit 1 - fi - - benchmark: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} - name: Go benchmark test - runs-on: [ubuntu-latest] - steps: - - name: Check-out code - uses: actions/checkout@v3 - - name: Set up Go using version from go.mod - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Run Go benchmark test - run: go test -run '^$' -bench . -benchtime 1x -timeout 10m -cpu 4 -v -benchmem ./pkg/... + fail_ci_if_error: true diff --git a/.github/workflows/golicense.yml b/.github/workflows/golicense.yml deleted file mode 100644 index c57360126cb..00000000000 --- a/.github/workflows/golicense.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: Golicense -on: - pull_request: - branches: - - main - - release-* - - feature/* - push: - branches: - - main - - release-* - - feature/* - release: - types: [published] - -jobs: - check-changes: - name: Check whether tests need to be run based on diff - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - uses: antrea-io/has-changes@v2 - id: check_diff - with: - paths-ignore: docs/* ci/jenkins/* *.md hack/.notableofcontents - outputs: - has_changes: ${{ steps.check_diff.outputs.has_changes }} - - golicense: - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' || github.event_name != 'pull_request' }} - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - - name: Set up Go using version from go.mod - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Cache licensing information for dependencies - uses: actions/cache@v3 - id: cache - env: - cache-name: cache-lichen-deps-licensing-info - with: - path: license-reports - key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/go.sum', 'ci/golicense/**') }} - - run: mkdir antrea-bins - - name: Build assets - run: | - export VERSION="$(head VERSION)" - ./hack/release/prepare-assets.sh ./antrea-bins - - name: Build Linux binaries - run: BINDIR=./antrea-bins make bin - - name: Run lichen - if: steps.cache.outputs.cache-hit != 'true' - run: | - mkdir license-reports - ./ci/golicense/run.sh ./antrea-bins ./license-reports - - name: Upload licensing information - if: ${{ always() }} - uses: actions/upload-artifact@v3 - with: - name: licenses.deps - path: license-reports/ALL.deps.txt - retention-days: 90 # max value diff --git a/.github/workflows/kind.yml b/.github/workflows/kind.yml deleted file mode 100644 index abf4e08f83b..00000000000 --- a/.github/workflows/kind.yml +++ /dev/null @@ -1,717 +0,0 @@ -name: Kind -on: - pull_request: - branches: - - main - - release-* - - feature/* - push: - branches: - - main - - release-* - - feature/* - -env: - KIND_VERSION: v0.20.0 - -jobs: - check-changes: - name: Check whether tests need to be run based on diff - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - uses: antrea-io/has-changes@v2 - id: check_diff - with: - paths-ignore: docs/* ci/jenkins/* *.md hack/.notableofcontents plugins/* - outputs: - has_changes: ${{ steps.check_diff.outputs.has_changes }} - - build-antrea-coverage-image: - name: Build Antrea image to be used for Kind e2e tests - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - - name: Build Antrea Docker image with code coverage support - run: | - ./hack/build-antrea-linux-all.sh --pull --coverage - - name: Save Antrea image to tarball - run: docker save -o antrea-ubuntu.tar antrea/antrea-ubuntu-coverage:latest - - name: Upload Antrea image for subsequent jobs - uses: actions/upload-artifact@v3 - with: - name: antrea-ubuntu-cov - path: antrea-ubuntu.tar - retention-days: 1 # minimum value, in case artifact deletion by 'artifact-cleanup' job fails - - build-flow-aggregator-coverage-image: - name: Build Flow Aggregator image to be used for Kind e2e tests - needs: check-changes - if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} - runs-on: [ ubuntu-latest ] - steps: - - uses: actions/checkout@v3 - - run: make flow-aggregator-ubuntu-coverage - - name: Save Flow Aggregator image to tarball - run: docker save -o flow-aggregator.tar antrea/flow-aggregator-coverage:latest - - name: Upload Flow Aggregator image for subsequent jobs - uses: actions/upload-artifact@v3 - with: - name: flow-aggregator-cov - path: flow-aggregator.tar - retention-days: 1 # minimum value, in case artifact deletion by 'artifact-cleanup' job fails - - test-e2e-encap: - name: E2e tests on a Kind cluster on Linux - needs: [build-antrea-coverage-image] - 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@v3 - - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - - name: Install Kind - run: | - 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: Run e2e tests - run: | - mkdir log - mkdir test-e2e-encap-coverage - ANTREA_LOG_DIR=$PWD/log ANTREA_COV_DIR=$PWD/test-e2e-encap-coverage ./ci/kind/test-e2e-kind.sh --encap-mode encap --coverage - - name: Tar coverage files - run: tar -czf test-e2e-encap-coverage.tar.gz test-e2e-encap-coverage - - name: Upload coverage for test-e2e-encap-coverage - uses: actions/upload-artifact@v3 - with: - name: test-e2e-encap-coverage - path: test-e2e-encap-coverage.tar.gz - retention-days: 30 - - name: Codecov - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - file: '*.cov.out*' - flags: kind-e2e-tests - name: codecov-test-e2e-encap - directory: test-e2e-encap-coverage - fail_ci_if_error: ${{ github.event_name == 'push' }} - - name: Tar log files - if: ${{ failure() }} - run: tar -czf log.tar.gz log - - name: Upload test log - uses: actions/upload-artifact@v3 - if: ${{ failure() }} - with: - name: e2e-kind-encap.tar.gz - path: log.tar.gz - retention-days: 30 - - test-e2e-encap-non-default: - name: E2e tests on a Kind cluster on Linux with non default values (proxyAll=true, LoadBalancerMode=DSR, NodeIPAM=true) - needs: [build-antrea-coverage-image] - 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@v3 - - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - - name: Install Kind - run: | - 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: Run e2e tests - run: | - mkdir log - mkdir test-e2e-encap-non-default-coverage - ANTREA_LOG_DIR=$PWD/log ANTREA_COV_DIR=$PWD/test-e2e-encap-non-default-coverage ./ci/kind/test-e2e-kind.sh \ - --coverage \ - --encap-mode encap \ - --proxy-all \ - --feature-gates LoadBalancerModeDSR=true \ - --load-balancer-mode dsr \ - --node-ipam - - name: Tar coverage files - run: tar -czf test-e2e-encap-non-default-coverage.tar.gz test-e2e-encap-non-default-coverage - - name: Upload coverage for test-e2e-encap-non-default-coverage - uses: actions/upload-artifact@v3 - with: - name: test-e2e-encap-non-default-coverage - path: test-e2e-encap-non-default-coverage.tar.gz - retention-days: 30 - - name: Codecov - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - file: '*.cov.out*' - flags: kind-e2e-tests - name: codecov-test-e2e-encap-non-default - directory: test-e2e-encap-non-default-coverage - fail_ci_if_error: ${{ github.event_name == 'push' }} - - name: Tar log files - if: ${{ failure() }} - run: tar -czf log.tar.gz log - - name: Upload test log - uses: actions/upload-artifact@v3 - if: ${{ failure() }} - with: - name: e2e-kind-encap-non-default.tar.gz - path: log.tar.gz - retention-days: 30 - - test-e2e-encap-all-features-enabled: - name: E2e tests on a Kind cluster on Linux with all features enabled - needs: [build-antrea-coverage-image] - 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@v3 - - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - - name: Install Kind - run: | - 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: Run e2e tests - run: | - mkdir log - mkdir test-e2e-encap-all-features-enabled-coverage - ANTREA_LOG_DIR=$PWD/log ANTREA_COV_DIR=$PWD/test-e2e-encap-all-features-enabled-coverage ./ci/kind/test-e2e-kind.sh \ - --encap-mode encap \ - --coverage \ - --feature-gates AllAlpha=true,AllBeta=true \ - --proxy-all \ - --node-ipam \ - --multicast - - name: Tar coverage files - run: tar -czf test-e2e-encap-all-features-enabled-coverage.tar.gz test-e2e-encap-all-features-enabled-coverage - - name: Upload coverage for test-e2e-encap-all-features-enabled-coverage - uses: actions/upload-artifact@v3 - with: - name: test-e2e-encap-all-features-enabled-coverage - path: test-e2e-encap-all-features-enabled-coverage.tar.gz - retention-days: 30 - - name: Codecov - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - file: '*.cov.out*' - flags: kind-e2e-tests - name: codecov-test-e2e-encap-all-features-enabled - directory: test-e2e-encap-all-features-enabled-coverage - fail_ci_if_error: ${{ github.event_name == 'push' }} - - name: Tar log files - if: ${{ failure() }} - run: tar -czf log.tar.gz log - - name: Upload test log - uses: actions/upload-artifact@v3 - if: ${{ failure() }} - with: - name: e2e-kind-encap-all-features-enabled.tar.gz - path: log.tar.gz - retention-days: 30 - - test-e2e-noencap: - name: E2e tests on a Kind cluster on Linux (noEncap) - needs: [build-antrea-coverage-image] - 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@v3 - - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - - name: Install Kind - run: | - 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: Run e2e tests - run: | - mkdir log - mkdir test-e2e-noencap-coverage - ANTREA_LOG_DIR=$PWD/log ANTREA_COV_DIR=$PWD/test-e2e-noencap-coverage ./ci/kind/test-e2e-kind.sh --encap-mode noEncap --coverage --skip mode-irrelevant - - name: Tar coverage files - run: tar -czf test-e2e-noencap-coverage.tar.gz test-e2e-noencap-coverage - - name: Upload coverage for test-e2e-noencap-coverage - uses: actions/upload-artifact@v3 - with: - name: test-e2e-noencap-coverage - path: test-e2e-noencap-coverage.tar.gz - retention-days: 30 - - name: Codecov - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - file: '*.cov.out*' - flags: kind-e2e-tests - name: codecov-test-e2e-noencap - directory: test-e2e-noencap-coverage - fail_ci_if_error: ${{ github.event_name == 'push' }} - - name: Tar log files - if: ${{ failure() }} - run: tar -czf log.tar.gz log - - name: Upload test log - uses: actions/upload-artifact@v3 - if: ${{ failure() }} - with: - name: e2e-kind-noencap.tar.gz - path: log.tar.gz - retention-days: 30 - - test-e2e-hybrid: - name: E2e tests on a Kind cluster on Linux (hybrid) - needs: [build-antrea-coverage-image] - 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@v3 - - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - - name: Install Kind - run: | - 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: Run e2e tests - run: | - mkdir log - mkdir test-e2e-hybrid-coverage - ANTREA_LOG_DIR=$PWD/log ANTREA_COV_DIR=$PWD/test-e2e-hybrid-coverage ./ci/kind/test-e2e-kind.sh --encap-mode hybrid --coverage --skip mode-irrelevant - - name: Tar coverage files - run: tar -czf test-e2e-hybrid-coverage.tar.gz test-e2e-hybrid-coverage - - name: Upload coverage for test-e2e-hybrid-coverage - uses: actions/upload-artifact@v3 - with: - name: test-e2e-hybrid-coverage - path: test-e2e-hybrid-coverage.tar.gz - retention-days: 30 - - name: Codecov - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - file: '*.cov.out*' - flags: kind-e2e-tests - name: codecov-test-e2e-hybrid - directory: test-e2e-hybrid-coverage - fail_ci_if_error: ${{ github.event_name == 'push' }} - - name: Tar log files - if: ${{ failure() }} - run: tar -czf log.tar.gz log - - name: Upload test log - uses: actions/upload-artifact@v3 - if: ${{ failure() }} - with: - name: e2e-kind-hybrid.tar.gz - path: log.tar.gz - retention-days: 30 - - test-e2e-flow-visibility: - name: E2e tests on a Kind cluster on Linux for Flow Visibility - needs: [build-antrea-coverage-image, build-flow-aggregator-coverage-image] - runs-on: [ubuntu-latest] - steps: - - name: Free disk space - # https://github.com/actions/virtual-environments/issues/709 - run: | - sudo apt-get clean - sudo rm -rf /usr/share/dotnet - sudo rm -rf /opt/ghc - sudo rm -rf "/usr/local/share/boost" - sudo rm -rf "$AGENT_TOOLSDIRECTORY" - sudo rm -rf "/usr/local/lib/android" - df -h - - uses: actions/checkout@v3 - - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - - name: Download Flow Aggregator image from previous job - uses: actions/download-artifact@v3 - with: - name: flow-aggregator-cov - - name: Load Flow Aggregator image - run: | - docker load -i flow-aggregator.tar - - name: Install Kind - run: | - 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: Run e2e tests - run: | - mkdir log - mkdir test-e2e-fa-coverage - ANTREA_LOG_DIR=$PWD/log ANTREA_COV_DIR=$PWD/test-e2e-fa-coverage ./ci/kind/test-e2e-kind.sh --encap-mode encap --coverage --flow-visibility - - name: Tar coverage files - run: tar -czf test-e2e-fa-coverage.tar.gz test-e2e-fa-coverage - - name: Upload coverage for test-e2e-fa-coverage - uses: actions/upload-artifact@v3 - with: - name: test-e2e-fa-coverage - path: test-e2e-fa-coverage.tar.gz - retention-days: 30 - - name: Codecov - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - file: '*.cov.out*' - flags: kind-e2e-tests - name: codecov-test-e2e-fa - directory: test-e2e-fa-coverage - fail_ci_if_error: ${{ github.event_name == 'push' }} - - name: Tar log files - if: ${{ failure() }} - run: tar -czf log.tar.gz log - - name: Upload test log - uses: actions/upload-artifact@v3 - if: ${{ failure() }} - with: - name: e2e-kind-fa.tar.gz - path: log.tar.gz - retention-days: 30 - - test-network-policy-conformance-encap: - name: NetworkPolicy conformance tests on a Kind cluster on Linux - needs: [build-antrea-coverage-image] - 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@v3 - - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest - - name: Install Kind - run: | - 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: Run NetworkPolicy conformance tests - run: | - mkdir log - ANTREA_LOG_DIR=$PWD/log ./ci/kind/test-netpol-v2-conformance-kind.sh - - name: Tar log files - if: ${{ failure() }} - run: tar -czf log.tar.gz log - - name: Upload test log - uses: actions/upload-artifact@v3 - if: ${{ failure() }} - with: - name: networkpolicy-conformance-kind-encap.tar.gz - path: log.tar.gz - retention-days: 30 - - test-upgrade-from-N-1: - name: Upgrade from Antrea version N-1 - needs: build-antrea-coverage-image - 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@v3 - - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest - - name: Install Kind - run: | - 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: Run test - run: | - mkdir log - ANTREA_LOG_DIR=$PWD/log ./ci/kind/test-upgrade-antrea.sh --from-version-n-minus 1 - - name: Tar log files - if: ${{ failure() }} - run: tar -czf log.tar.gz log - - name: Upload test log - uses: actions/upload-artifact@v3 - if: ${{ failure() }} - with: - name: upgrade-from-antrea-version-n-1.tar.gz - path: log.tar.gz - retention-days: 30 - - test-upgrade-from-N-2: - name: Upgrade from Antrea version N-2 - needs: build-antrea-coverage-image - 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@v3 - - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest - - name: Install Kind - run: | - 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: Run test - run: | - mkdir log - ANTREA_LOG_DIR=$PWD/log ./ci/kind/test-upgrade-antrea.sh --from-version-n-minus 2 - - name: Tar log files - if: ${{ failure() }} - run: tar -czf log.tar.gz log - - name: Upload test log - uses: actions/upload-artifact@v3 - if: ${{ failure() }} - with: - name: upgrade-from-antrea-version-n-2.tar.gz - path: log.tar.gz - retention-days: 30 - - test-compatible-N-1: - name: API compatible with client version N-1 - needs: build-antrea-coverage-image - 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@v3 - - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest - - name: Install Kind - run: | - 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: Run test - run: | - mkdir log - ANTREA_LOG_DIR=$PWD/log ./ci/kind/test-upgrade-antrea.sh --from-version-n-minus 1 --controller-only - - name: Tar log files - if: ${{ failure() }} - run: tar -czf log.tar.gz log - - name: Upload test log - uses: actions/upload-artifact@v3 - if: ${{ failure() }} - with: - name: api-compatible-with-client-version-n-1.tar.gz - path: log.tar.gz - retention-days: 30 - - test-compatible-N-2: - name: API compatible with client version N-2 - needs: build-antrea-coverage-image - 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@v3 - - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest - - name: Install Kind - run: | - 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: Run test - run: | - mkdir log - ANTREA_LOG_DIR=$PWD/log ./ci/kind/test-upgrade-antrea.sh --from-version-n-minus 2 --controller-only - - name: Tar log files - if: ${{ failure() }} - run: tar -czf log.tar.gz log - - name: Upload test log - uses: actions/upload-artifact@v3 - if: ${{ failure() }} - with: - name: api-compatible-with-client-version-n-2.tar.gz - path: log.tar.gz - retention-days: 30 - - validate-prometheus-metrics-doc: - name: Validate metrics in Prometheus document match running deployment's - needs: build-antrea-coverage-image - 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@v3 - - name: Download Antrea image from previous job - uses: actions/download-artifact@v3 - with: - name: antrea-ubuntu-cov - - name: Load Antrea image - run: | - docker load -i antrea-ubuntu.tar - docker tag antrea/antrea-ubuntu-coverage:latest antrea/antrea-ubuntu:latest - - name: Install Kind - run: | - 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: Validate document - run: | - ./ci/kind/validate-metrics-doc.sh - - # Runs after all other jobs in the workflow succeed and deletes Antrea Docker images uploaded as temporary - # artifacts. It uses a third-party, MIT-licensed action (geekyeggo/delete-artifact). While Github - # exposes an API for deleting artifacts, they do not support an official delete-artifact action - # yet. - artifact-cleanup: - name: Delete uploaded images - needs: - - build-antrea-coverage-image - - build-flow-aggregator-coverage-image - - test-e2e-encap - - test-e2e-encap-non-default - - test-e2e-encap-all-features-enabled - - test-e2e-noencap - - test-e2e-hybrid - - test-upgrade-from-N-1 - - test-upgrade-from-N-2 - - test-compatible-N-1 - - test-compatible-N-2 - - validate-prometheus-metrics-doc - - test-e2e-flow-visibility - - test-network-policy-conformance-encap - runs-on: [ubuntu-latest] - steps: - - name: Delete antrea-ubuntu-cov - if: ${{ needs.build-antrea-coverage-image.result == 'success' }} - uses: geekyeggo/delete-artifact@v2 - with: - name: antrea-ubuntu-cov - - name: Delete flow-aggregator - if: ${{ needs.build-flow-aggregator-coverage-image.result == 'success' }} - uses: geekyeggo/delete-artifact@v2 - with: - name: flow-aggregator-cov - failOnError: false diff --git a/codecov.yaml b/codecov.yaml index f1b7a3f57f6..d7fd34d62a0 100644 --- a/codecov.yaml +++ b/codecov.yaml @@ -37,10 +37,9 @@ coverage: flags: - unit-tests - flag_management: default_rules: - carryforward: true + carryforward: false # Exclude files from being collected by Codecov. Ignored files will be skipped during processing. ignore: