Schedule Daily #549
This file contains hidden or 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
| # This workflow is responsible for performance, UI and compatibility tests | |
| name: Schedule Daily | |
| permissions: | |
| contents: read | |
| on: | |
| schedule: | |
| - cron: '0 4 * * *' # Run every day at 5:00 CET (4:00 UTC) | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref_name }} | |
| cancel-in-progress: true | |
| env: | |
| IMAGE_NAME: "europe-docker.pkg.dev/kyma-project/prod/istio/main/istio-manager" | |
| jobs: | |
| get-image: | |
| name: Get manager image | |
| runs-on: ubuntu-latest | |
| outputs: | |
| image: "${{ steps.get-image.outputs.image }}" | |
| operator_version: "${{ steps.get-image.outputs.operator_version }}" | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - id: get-image | |
| name: Get image for tests | |
| shell: bash | |
| run: | | |
| commit_id=$("./hack/ci/get-latest-sha.sh" "${IMAGE_NAME}") | |
| image="${IMAGE_NAME}:${commit_id}" | |
| operator_version="${commit_id}" | |
| echo "image=${image}" | |
| echo "image=${image}" >> $GITHUB_OUTPUT | |
| echo "operator_version=${operator_version}" | |
| echo "operator_version=${operator_version}" >> $GITHUB_OUTPUT | |
| - id: check-image | |
| name: Check whether image exists | |
| shell: bash | |
| run: docker pull "${{ steps.get-image.outputs.image }}" | |
| ############################################# | |
| # Performance tests | |
| # Run on: AWS | |
| ############################################# | |
| istio-performance-test: | |
| name: Istio performance test | |
| environment: | |
| name: e2e | |
| deployment: false | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/perf-test-gardener | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| manager_image: ${{ needs.get-image.outputs.image }} | |
| gardener_secret: ${{ secrets.GARDENER_TOKEN }} | |
| gardener_project_name: ${{ vars.GARDENER_PROJECT_NAME }} | |
| gardener_configuration: aws-ipv4 | |
| ############################################# | |
| # UI tests | |
| # Run on: K3D | |
| ############################################# | |
| run-ui-tests-periodic: | |
| name: Run UI tests | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: "go.mod" | |
| - name: Run tests | |
| run: | | |
| sudo echo "127.0.0.1 local.kyma.dev" | sudo tee -a /etc/hosts | |
| wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | sudo bash | |
| docker pull ${{ needs.get-image.outputs.image }} | |
| IMG="${{ needs.get-image.outputs.image }}" ./tests/ui/scripts/k3d-ci-kyma-dashboard-integration.sh stage | |
| - uses: actions/upload-artifact@v7 | |
| if: always() | |
| name: Export Cypress output | |
| with: | |
| name: cypress | |
| path: tests/ui/cypress/ | |
| ############################################# | |
| # Compatibility tests | |
| # Run on: AWS, K3D | |
| ############################################# | |
| k8s-compatibility-check-k3d: | |
| name: Kubernetes version compatibility test - K3D | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test_make_target: | |
| - "installation-e2e-test" | |
| - "configuration-e2e-test" | |
| - "mesh_communication-e2e-test" | |
| - "observability-e2e-test" | |
| - "extauth-e2e-test" | |
| - "egress-e2e-test" | |
| - "networkpolicy-e2e-test" | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/k8s-compatibility-test | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| operator_image_name: ${{ needs.get-image.outputs.image }} | |
| operator_version: ${{ needs.get-image.outputs.operator_version }} | |
| test_make_target: ${{ matrix.test_make_target }} | |
| k8s-compatibility-check-aws: | |
| name: Kubernetes version compatibility test - AWS | |
| environment: | |
| name: e2e | |
| deployment: false | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test_make_target: | |
| - "installation-e2e-test" | |
| - "configuration-e2e-test" | |
| - "mesh_communication-e2e-test" | |
| - "observability-e2e-test" | |
| - "extauth-e2e-test" | |
| - "egress-e2e-test" | |
| - "networkpolicy-e2e-test" | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/k8s-compatibility-test-aws | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| manager_image: ${{ needs.get-image.outputs.image }} | |
| operator_version: ${{ needs.get-image.outputs.operator_version }} | |
| test_make_target: ${{ matrix.test_make_target }} | |
| gardener_secret: ${{ secrets.GARDENER_TOKEN }} | |
| gardener_project_name: ${{ vars.GARDENER_PROJECT_NAME }} | |
| gardener_configuration: aws-ipv4-compatibility | |
| istio-e2e-test-k3d: | |
| name: Istio E2E test K3D | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-make-target: | |
| - "installation-e2e-test" | |
| - "configuration-e2e-test" | |
| - "mesh_communication-e2e-test" | |
| - "observability-e2e-test" | |
| - "extauth-e2e-test" | |
| - "egress-e2e-test" | |
| - "networkpolicy-e2e-test" | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/e2e-test-k3d | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| test_make_target: ${{ matrix.test-make-target }} | |
| operator-image-name: ${{ needs.get-image.outputs.image }} | |
| operator-version: ${{ needs.get-image.outputs.operator_version }} | |
| servers-memory: "16" | |
| agents: 2 | |
| istio-restarter-e2e-test-k3d: | |
| name: Istio Restarter E2E test K3D | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/e2e-test-k3d | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| test_make_target: "restarter-e2e-test" | |
| operator-image-name: ${{ needs.get-image.outputs.image }} | |
| operator-version: ${{ needs.get-image.outputs.operator_version }} | |
| servers-memory: "16" | |
| agents: 2 | |
| kwok: 'true' | |
| kwok-nodes: 50 | |
| istio-e2e-test-evaluation-k3d: | |
| name: Istio E2E test (evaluation) K3D | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-make-target: [ "evaluation-e2e-test" ] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/e2e-test-k3d | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| test_make_target: ${{ matrix.test-make-target }} | |
| operator-image-name: ${{ needs.get-image.outputs.image }} | |
| operator-version: ${{ needs.get-image.outputs.operator_version }} | |
| servers-memory: "4" | |
| agents: 0 | |
| istio-e2e-test-calico-k3d: | |
| name: Istio E2E test (Calico) K3D | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/e2e-test-k3d | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| test_make_target: "networkpolicy-e2e-test" | |
| operator-image-name: ${{ needs.get-image.outputs.image }} | |
| operator-version: ${{ needs.get-image.outputs.operator_version }} | |
| servers-memory: "16" | |
| agents: 0 | |
| calico: "true" | |
| istio-e2e-test-experimental-k3d: | |
| name: Istio E2E test (experimental) K3D | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-make-target: [ "ambient-e2e-test" ] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/e2e-test-k3d | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| test_make_target: ${{ matrix.test-make-target }} | |
| operator-image-name: ${{ needs.get-image.outputs.image }}-experimental | |
| operator-version: ${{ needs.get-image.outputs.operator_version }}-experimental | |
| servers-memory: "16" | |
| agents: 2 | |
| istio-upgrade-test-k3d: | |
| name: Istio upgrade test K3D | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - uses: ./.github/actions/e2e-test-k3d | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| TARGET_BRANCH: ${{ github.ref_name }} | |
| with: | |
| test_make_target: "upgrade-test" | |
| operator-version: ${{ needs.get-image.outputs.operator_version }} | |
| operator-image-name: ${{ needs.get-image.outputs.image }} | |
| servers-memory: "16" | |
| agents: 2 | |
| istio-e2e-test-fips-k3d: | |
| name: Istio E2E test (FIPS) K3D | |
| environment: | |
| name: e2e | |
| deployment: false | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-make-target: | |
| - "installation-e2e-test" | |
| - "smoke_test-e2e-test" | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/e2e-test-k3d | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| FIPS_REGISTRY_SA: ${{ secrets.FIPS_REGISTRY_SA }} | |
| KYMA_FIPS_MODE_ENABLED: "true" | |
| REGISTRY_SECRET_NAME: "regcred" | |
| with: | |
| test_make_target: ${{ matrix.test-make-target }} | |
| operator-image-name: ${{ needs.get-image.outputs.image }} | |
| operator-version: ${{ needs.get-image.outputs.operator_version }} | |
| servers: 3 | |
| servers-memory: "16" | |
| agents: 0 | |
| calico: "true" | |
| istio-e2e-test-aws: | |
| name: Istio E2E test AWS | |
| environment: | |
| name: e2e | |
| deployment: false | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test_make_target: | |
| - "xff_header-e2e-test" | |
| - "trustdomain-e2e-test" | |
| - "networkpolicy-e2e-test" | |
| - "dnsproxying-e2e-test" | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/e2e-test-gardener | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| manager_image: ${{ needs.get-image.outputs.image }} | |
| gardener_secret: ${{ secrets.GARDENER_TOKEN }} | |
| gardener_project_name: ${{ vars.GARDENER_PROJECT_NAME }} | |
| gardener_configuration: aws-ipv4 | |
| test_ip_family: ipv4 | |
| test_make_target: ${{ matrix.test_make_target }} | |
| operator_version: ${{ needs.get-image.outputs.operator_version }} | |
| istio-e2e-test-gcp: | |
| name: Istio E2E test GCP | |
| environment: | |
| name: e2e | |
| deployment: false | |
| runs-on: ubuntu-latest | |
| needs: [ get-image ] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test_make_target: | |
| - "xff_header-e2e-test" | |
| - "trustdomain-e2e-test" | |
| - "networkpolicy-e2e-test" | |
| - "dnsproxying-e2e-test" | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/e2e-test-gardener | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| manager_image: ${{ needs.get-image.outputs.image }} | |
| gardener_secret: ${{ secrets.GARDENER_TOKEN }} | |
| gardener_project_name: ${{ vars.GARDENER_PROJECT_NAME }} | |
| gardener_configuration: gcp-ipv4 | |
| test_make_target: ${{ matrix.test_make_target }} | |
| operator_version: ${{ needs.get-image.outputs.operator_version }} | |
| slack_failed_notification: | |
| name: Slack Notification | |
| environment: | |
| name: notifications | |
| deployment: false | |
| runs-on: ubuntu-latest | |
| if: ${{ failure() }} | |
| needs: | |
| - istio-performance-test | |
| - run-ui-tests-periodic | |
| - k8s-compatibility-check-k3d | |
| - k8s-compatibility-check-aws | |
| - istio-e2e-test-k3d | |
| - istio-e2e-test-evaluation-k3d | |
| - istio-e2e-test-calico-k3d | |
| - istio-e2e-test-experimental-k3d | |
| - istio-upgrade-test-k3d | |
| - istio-e2e-test-gcp | |
| - istio-e2e-test-aws | |
| - istio-e2e-test-fips-k3d | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Notify | |
| uses: ./.github/actions/slack-notification-failed-workflow | |
| with: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |