feat(frontend): surface pod lifecycle failure reason in run details UI. Part of #12843 #2541
Workflow file for this run
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
| name: KFP e2e frontend tests | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: | |
| paths: | |
| - '.github/workflows/e2e-test-frontend.yml' | |
| - '.github/workflows/image-builds.yml' | |
| - '.github/actions/deploy/**' | |
| - '.github/resources/**' | |
| - 'frontend/**' | |
| - 'manifests/kustomize/**' | |
| - 'test/server-integration-test/**' | |
| - 'test/frontend-integration-test/**' | |
| - '!**/*.md' | |
| - '!**/OWNERS' | |
| jobs: | |
| build: | |
| uses: ./.github/workflows/image-builds.yml | |
| frontend-integration-test: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| strategy: | |
| matrix: | |
| k8s_version: [ "v1.29.2", "v1.34.0" ] | |
| pod_to_pod_tls_enabled: [ "true", "false" ] | |
| name: Frontend Integration Tests - K8s ${{ matrix.k8s_version }} pod_to_pod_tls_enabled=${{ matrix.pod_to_pod_tls_enabled }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.9 | |
| - name: Create KFP cluster | |
| id: create-kfp-cluster | |
| uses: ./.github/actions/create-cluster | |
| with: | |
| k8s_version: ${{ matrix.k8s_version }} | |
| continue-on-error: true | |
| - name: Deploy | |
| id: deploy | |
| uses: ./.github/actions/deploy | |
| if: ${{ steps.create-kfp-cluster.outcome == 'success' }} | |
| with: | |
| image_path: ${{ needs.build.outputs.IMAGE_PATH }} | |
| image_tag: ${{ needs.build.outputs.IMAGE_TAG }} | |
| image_registry: ${{ needs.build.outputs.IMAGE_REGISTRY }} | |
| pod_to_pod_tls_enabled: ${{ matrix.pod_to_pod_tls_enabled }} | |
| - name: Forward Frontend port | |
| id: forward-frontend-port | |
| if: ${{ steps.deploy.outcome == 'success' }} | |
| run: ./.github/resources/scripts/forward-port.sh "kubeflow" "ml-pipeline-ui" 3000 3000 | |
| continue-on-error: true | |
| - name: Server integration tests | |
| id: server-tests | |
| if: ${{ steps.forward-frontend-port.outcome == 'success' }} | |
| working-directory: ./test/server-integration-test | |
| run: | | |
| node server-test.js --url http://localhost:3000 | |
| node k8s-integration-test.js --url http://localhost:3000 | |
| continue-on-error: true | |
| - name: Build frontend integration tests image | |
| working-directory: ./test/frontend-integration-test | |
| run: docker build --build-arg NODE_VERSION=$(tr -d 'v' < ../../frontend/.nvmrc) -t kfp-frontend-integration-test:local . | |
| - name: Prepare frontend integration test artifacts | |
| if: ${{ steps.forward-frontend-port.outcome == 'success' }} | |
| run: | | |
| mkdir -p /tmp/frontend-integration-artifacts/screenshots | |
| chmod -R 777 /tmp/frontend-integration-artifacts | |
| - name: Frontend integration tests | |
| id: tests | |
| if: ${{ steps.forward-frontend-port.outcome == 'success' }} | |
| run: | | |
| docker run \ | |
| --net=host \ | |
| -v /tmp/frontend-integration-artifacts:/tmp/frontend-integration-artifacts \ | |
| -e FRONTEND_INTEGRATION_ARTIFACT_DIR=/tmp/frontend-integration-artifacts \ | |
| kfp-frontend-integration-test:local | |
| continue-on-error: true | |
| - name: Collect failed logs | |
| if: ${{ steps.deploy.outcome != 'success' || steps.forward-frontend-port.outcome != 'success' || steps.server-tests.outcome != 'success' || steps.tests.outcome != 'success' }} | |
| run: | | |
| ./.github/resources/scripts/collect-logs.sh --ns kubeflow --output /tmp/tmp_pod_log.txt | |
| exit 1 | |
| - name: Collect test results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: kfp-frontend-integration-test-artifacts-k8s-${{ matrix.k8s_version }} pod_to_pod_tls_enabled=${{ matrix.pod_to_pod_tls_enabled }} | |
| if-no-files-found: warn | |
| path: | | |
| /tmp/tmp*/* | |
| /tmp/frontend-integration-artifacts/**/* |