chore(deps): update dockerfile digest updates (#90) #135
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: CI - E2E Tests | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| env: | |
| E2E_SIMULATOR_ENDPOINT: "3.147.232.199" | |
| jobs: | |
| check-changes: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| outputs: | |
| src: ${{ steps.filter.outputs.src }} | |
| steps: | |
| - name: Checkout source | |
| uses: actions/checkout@v7 | |
| - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4 | |
| id: filter | |
| with: | |
| filters: | | |
| src: | |
| - '**/*.go' | |
| - Dockerfile | |
| - Dockerfile.e2e | |
| - Makefile | |
| - go.mod | |
| - go.sum | |
| - go.work | |
| - go.work.sum | |
| - 'test/e2e/**' | |
| - 'deploy/**' | |
| - '.github/workflows/ci-e2e.yaml' | |
| simulator-check: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| outputs: | |
| reachable: ${{ steps.check.outputs.reachable }} | |
| steps: | |
| - name: Check simulator connectivity | |
| id: check | |
| run: | | |
| if nc -z -w 5 ${{ env.E2E_SIMULATOR_ENDPOINT }} 443 2>/dev/null; then | |
| echo "Simulator is reachable" | |
| echo "reachable=true" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "Simulator is NOT reachable - E2E tests will be skipped" | |
| echo "reachable=false" >> "$GITHUB_OUTPUT" | |
| fi | |
| e2e: | |
| needs: [check-changes, simulator-check] | |
| if: ${{ needs.check-changes.outputs.src == 'true' && needs.simulator-check.outputs.reachable == 'true' }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| permissions: | |
| contents: read | |
| checks: write | |
| steps: | |
| - name: Free Disk Space (Ubuntu) | |
| uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # main | |
| with: | |
| tool-cache: false | |
| - name: Checkout source | |
| uses: actions/checkout@v7 | |
| - name: Extract Go version from go.mod | |
| run: sed -En 's/^go (.*)$/GO_VERSION=\1/p' go.mod >> "$GITHUB_ENV" | |
| - name: Set up Go with cache | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: "${{ env.GO_VERSION }}" | |
| cache-dependency-path: ./go.sum | |
| - name: Set up Kind cluster with Istio and BBR | |
| run: make test-e2e-setup | |
| - name: Debug - BBR pod args and status | |
| if: always() | |
| run: | | |
| echo "=== BBR pod args ===" | |
| kubectl get pod -n default -l app=payload-processing -o jsonpath='{.items[0].spec.containers[0].args}' 2>/dev/null | python3 -c "import json,sys; [print(a) for a in json.load(sys.stdin)]" || echo "Failed to get pod args" | |
| echo "" | |
| echo "=== BBR pod status ===" | |
| kubectl get pods -n default -l app=payload-processing -o wide 2>/dev/null || true | |
| echo "" | |
| echo "=== ExternalModel CRD provider field ===" | |
| kubectl get crd externalmodels.maas.opendatahub.io -o jsonpath='{.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.provider}' 2>/dev/null | python3 -m json.tool || true | |
| - name: Run E2E tests with JUnit report | |
| run: make test-e2e-junit | |
| - name: Debug - BBR logs on failure | |
| if: failure() | |
| run: | | |
| echo "=== BBR pod logs (last 50 lines) ===" | |
| kubectl logs -n default -l app=payload-processing --tail=50 2>/dev/null || true | |
| echo "" | |
| echo "=== Gateway pod logs (last 20 lines) ===" | |
| kubectl logs -n default -l gateway.networking.k8s.io/gateway-name=e2e-gateway --tail=20 2>/dev/null || true | |
| echo "" | |
| echo "=== ExternalModels in test namespace ===" | |
| kubectl get externalmodels -n bbr-e2e -o wide 2>/dev/null || true | |
| echo "" | |
| echo "=== Services in test namespace ===" | |
| kubectl get svc -n bbr-e2e -o wide 2>/dev/null || true | |
| echo "" | |
| echo "=== HTTPRoutes in test namespace ===" | |
| kubectl get httproute -n bbr-e2e -o wide 2>/dev/null || true | |
| echo "" | |
| echo "=== Manual curl test for vertex-openai ===" | |
| kubectl exec -n bbr-e2e curl -- curl -si --max-time 10 \ | |
| "http://e2e-gateway-istio.default.svc:80/bbr-e2e/e2e-vertex-openai/v1/chat/completions" \ | |
| -H "Content-Type: application/json" \ | |
| -H "Connection: close" \ | |
| -d '{"model":"e2e-vertex-openai","messages":[{"role":"user","content":"debug"}]}' 2>/dev/null || true | |
| - name: Upload JUnit report | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: e2e-junit-report | |
| path: "**/results_e2e_xunit.xml" | |
| if-no-files-found: warn | |
| - name: Publish E2E test results | |
| if: always() | |
| uses: mikepenz/action-junit-report@d9f48fc87bc235f7e214acf696ca5abc0a986f16 # v6 | |
| with: | |
| report_paths: "**/results_e2e_xunit.xml" | |
| check_name: E2E Test Results | |
| fail_on_failure: true |