fix: Reduce CPU memory usage caused by Istio existence check #2003
Workflow file for this run
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: PR Integration | |
env: | |
IMG: europe-docker.pkg.dev/kyma-project/dev/telemetry-manager:PR-${{ github.event.number }} | |
on: | |
pull_request: | |
branches: | |
- "main" | |
- "release-*" | |
workflow_dispatch: | |
jobs: | |
# This is a workaround to bypass the limitations of the workflow path filter: | |
# https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks#handling-skipped-but-required-checks | |
check-changed-files: | |
outputs: | |
check: ${{ steps.changed-files.outputs.any_modified }} | |
runs-on: ubuntu-latest | |
if: ${{ github.event.pull_request.draft == false }} | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Get changed files | |
uses: tj-actions/changed-files@6b2903bdce6310cfbddd87c418f253cf29b2dec9 | |
id: changed-files | |
with: | |
files_ignore: | | |
docs/** | |
**/*.md | |
OWNERS | |
CODEOWNERS | |
- name: List changed files | |
run: echo '${{ steps.changed-files.outputs.all_changed_files }}' >> $GITHUB_STEP_SUMMARY | |
e2e: | |
needs: | |
- check-changed-files | |
if: ${{ needs.check-changed-files.outputs.check == 'true' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
ginkgo-labels: | |
- logs | |
- metrics | |
- traces | |
- telemetry | |
- max-pipeline | |
- telemetry-log-analysis | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Prepare test | |
uses: "./.github/template/prepare-test" | |
with: | |
release: true | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run tests | |
run: bin/ginkgo run --junit-report=junit-report.xml --tags e2e --label-filter="${{ matrix.ginkgo-labels }} && !experimental" test/e2e | |
- name: Finalize test | |
uses: "./.github/template/finalize-test" | |
if: success() || failure() | |
with: | |
failure: failure() | |
job-name: ${{ github.job }}-${{ matrix.ginkgo-labels }} | |
e2e-dev: | |
needs: | |
- check-changed-files | |
if: ${{ needs.check-changed-files.outputs.check == 'true' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
ginkgo-labels: | |
- logs | |
- metrics | |
- traces | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Prepare test | |
uses: "./.github/template/prepare-test" | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run tests | |
run: bin/ginkgo run --junit-report=junit-report.xml --tags e2e --label-filter="${{ matrix.ginkgo-labels }} && experimental" test/e2e | |
- name: Finalize test | |
uses: "./.github/template/finalize-test" | |
if: success() || failure() | |
with: | |
failure: failure() | |
job-name: ${{ github.job }}-${{ matrix.ginkgo-labels }} | |
e2e-istio: | |
needs: | |
- check-changed-files | |
if: ${{ needs.check-changed-files.outputs.check == 'true' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Prepare Test | |
uses: "./.github/template/prepare-test" | |
with: | |
release: true | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Deploy Istio Module | |
run: hack/deploy-istio.sh | |
- name: Run tests | |
run: | | |
bin/ginkgo run --junit-report=junit-report.xml --tags istio --label-filter="integration" test/integration/istio | |
- name: Finalize Test | |
uses: "./.github/template/finalize-test" | |
if: success() || failure() | |
with: | |
failure: failure() | |
job-name: ${{ github.job }} | |
e2e-self-mon: | |
needs: | |
- check-changed-files | |
if: ${{ needs.check-changed-files.outputs.check == 'true' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
signal-type: | |
- logs | |
- metrics | |
- traces | |
scenario: | |
- healthy | |
- backpressure | |
- outage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Prepare Test | |
uses: "./.github/template/prepare-test" | |
with: | |
release: true | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run tests without Istio | |
if: ${{ matrix.scenario == 'healthy' }} | |
run: | | |
bin/ginkgo run --junit-report=junit-report-healthy.xml --tags e2e --label-filter="self-mon-${{ matrix.signal-type }}-${{ matrix.scenario }}" test/e2e | |
# we need Istio for fault injection to simulate backpressure and outages | |
- name: Deploy Istio Module | |
if: ${{ matrix.scenario != 'healthy' }} | |
run: hack/deploy-istio.sh | |
- name: Run tests with Istio | |
if: ${{ matrix.scenario != 'healthy' }} | |
run: | | |
bin/ginkgo run --junit-report=junit-report-unhealthy.xml --tags istio --label-filter="self-mon-${{ matrix.signal-type }}-${{ matrix.scenario }}" test/integration/istio | |
- name: Finalize Test | |
uses: "./.github/template/finalize-test" | |
if: success() || failure() | |
with: | |
failure: failure() | |
job-name: ${{ github.job }}-${{ matrix.signal-type }}-${{ matrix.scenario }} | |
PR-Integration-Success: | |
needs: | |
- e2e | |
- e2e-dev | |
- e2e-istio | |
- e2e-self-mon | |
runs-on: ubuntu-latest | |
steps: | |
- name: Success | |
run: | | |
echo "PR Integration completed successfully" |