Extract App Studio assistant engine seam #836
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: E2E | |
| on: | |
| pull_request: | |
| branches: [main, ssh] | |
| push: | |
| branches: [main, ssh] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| e2e-standalone: | |
| name: Standalone (embedded kcp + static token) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: v1.26.1 | |
| - name: Install kind | |
| uses: helm/kind-action@v1 | |
| with: | |
| install_only: true | |
| - name: Install Helm | |
| uses: azure/setup-helm@v3 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Add kedge.localhost to /etc/hosts | |
| run: echo "127.0.0.1 kedge.localhost" | sudo tee -a /etc/hosts | |
| - name: Build binaries | |
| run: make build | |
| - name: Add bin/ to PATH | |
| run: echo "$(pwd)/bin" >> $GITHUB_PATH | |
| - name: Build hub Docker image | |
| run: docker build -f deploy/Dockerfile.hub -t ghcr.io/faroshq/kedge-hub:test . | |
| - name: Build agent Docker image | |
| run: docker build -f deploy/Dockerfile.agent -t ghcr.io/faroshq/kedge-agent:test . | |
| - name: Run standalone e2e | |
| env: | |
| KEDGE_HUB_IMAGE: ghcr.io/faroshq/kedge-hub | |
| KEDGE_HUB_IMAGE_PULL_POLICY: Never | |
| KEDGE_HUB_IMAGE_TAG: test | |
| KEDGE_AGENT_IMAGE: ghcr.io/faroshq/kedge-agent | |
| KEDGE_AGENT_IMAGE_TAG: test | |
| KEDGE_AGENT_IMAGE_PULL_POLICY: Never | |
| run: make e2e-standalone E2E_TIMEOUT=50m E2E_FLAGS="-ssh-keepalive-duration=30s -keep-clusters" | |
| - name: Collect kind cluster logs | |
| if: failure() | |
| run: | | |
| mkdir -p /tmp/kind-logs | |
| for cluster in $(kind get clusters 2>/dev/null); do | |
| kind export logs /tmp/kind-logs/$cluster --name "$cluster" || true | |
| done | |
| - name: Upload test logs on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: e2e-standalone-logs | |
| path: | | |
| *.kubeconfig | |
| *.log | |
| /tmp/kind-logs/ | |
| retention-days: 3 | |
| e2e-ssh: | |
| name: SSH Server-Mode (hub-only cluster) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: v1.26.1 | |
| - name: Install kind | |
| uses: helm/kind-action@v1 | |
| with: | |
| install_only: true | |
| - name: Install Helm | |
| uses: azure/setup-helm@v3 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Add kedge.localhost to /etc/hosts | |
| run: echo "127.0.0.1 kedge.localhost" | sudo tee -a /etc/hosts | |
| - name: Build binaries | |
| run: make build | |
| - name: Add bin/ to PATH | |
| run: echo "$(pwd)/bin" >> $GITHUB_PATH | |
| - name: Build hub Docker image | |
| run: docker build -f deploy/Dockerfile.hub -t ghcr.io/faroshq/kedge-hub:test . | |
| - name: Run SSH e2e | |
| env: | |
| KEDGE_HUB_IMAGE: ghcr.io/faroshq/kedge-hub | |
| KEDGE_HUB_IMAGE_PULL_POLICY: Never | |
| KEDGE_HUB_IMAGE_TAG: test | |
| run: make e2e-ssh E2E_TIMEOUT=30m E2E_FLAGS="-keep-clusters" | |
| - name: Collect kind cluster logs | |
| if: failure() | |
| run: | | |
| mkdir -p /tmp/kind-logs | |
| for cluster in $(kind get clusters 2>/dev/null); do | |
| kind export logs /tmp/kind-logs/$cluster --name "$cluster" || true | |
| done | |
| - name: Upload test logs on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: e2e-ssh-logs | |
| path: | | |
| *.kubeconfig | |
| *.log | |
| /tmp/kind-logs/ | |
| retention-days: 3 | |
| e2e-oidc: | |
| name: OIDC (Dex + auth-code flow) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 40 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: v1.26.1 | |
| - name: Install kind | |
| uses: helm/kind-action@v1 | |
| with: | |
| install_only: true | |
| - name: Install Helm | |
| uses: azure/setup-helm@v3 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Add kedge.localhost to /etc/hosts | |
| run: echo "127.0.0.1 kedge.localhost" | sudo tee -a /etc/hosts | |
| - name: Add Dex hostname to /etc/hosts | |
| run: echo "127.0.0.1 dex.kedge-system.svc.cluster.local" | sudo tee -a /etc/hosts | |
| - name: Add dexidp Helm repo | |
| run: | | |
| helm repo add dexidp https://charts.dexidp.io | |
| helm repo update dexidp | |
| - name: Build binaries | |
| run: make build | |
| - name: Add bin/ to PATH | |
| run: echo "$(pwd)/bin" >> $GITHUB_PATH | |
| - name: Build hub Docker image | |
| run: | | |
| docker build -f deploy/Dockerfile.hub \ | |
| -t ghcr.io/faroshq/kedge-hub:test . | |
| - name: Run OIDC e2e | |
| env: | |
| KEDGE_HUB_IMAGE: ghcr.io/faroshq/kedge-hub | |
| KEDGE_HUB_IMAGE_PULL_POLICY: Never | |
| KEDGE_HUB_IMAGE_TAG: test | |
| run: make e2e-oidc E2E_TIMEOUT=35m E2E_FLAGS="-keep-clusters" | |
| - name: Collect kind cluster logs | |
| if: failure() | |
| run: | | |
| mkdir -p /tmp/kind-logs | |
| for cluster in $(kind get clusters 2>/dev/null); do | |
| kind export logs /tmp/kind-logs/$cluster --name "$cluster" || true | |
| done | |
| - name: Upload test logs on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: e2e-oidc-logs | |
| path: | | |
| *.kubeconfig | |
| *.log | |
| /tmp/kind-logs/ | |
| retention-days: 3 | |
| e2e-external-kcp: | |
| name: External KCP (kcp via Helm + static token) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 90 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: v1.26.1 | |
| - name: Install kind | |
| uses: helm/kind-action@v1 | |
| with: | |
| install_only: true | |
| - name: Install Helm | |
| uses: azure/setup-helm@v3 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Add kedge.localhost to /etc/hosts | |
| run: echo "127.0.0.1 kedge.localhost" | sudo tee -a /etc/hosts | |
| - name: Add kcp Helm repo | |
| run: | | |
| helm repo add kcp-dev https://kcp-dev.github.io/helm-charts | |
| helm repo update kcp-dev | |
| - name: Build binaries | |
| run: make build | |
| - name: Add bin/ to PATH | |
| run: echo "$(pwd)/bin" >> $GITHUB_PATH | |
| - name: Build hub Docker image | |
| run: | | |
| docker build -f deploy/Dockerfile.hub \ | |
| -t ghcr.io/faroshq/kedge-hub:test . | |
| - name: Run external KCP e2e | |
| env: | |
| KEDGE_HUB_IMAGE: ghcr.io/faroshq/kedge-hub | |
| KEDGE_HUB_IMAGE_PULL_POLICY: Never | |
| KEDGE_HUB_IMAGE_TAG: test | |
| run: make e2e-external-kcp E2E_TIMEOUT=70m E2E_FLAGS="-keep-clusters" | |
| - name: Collect kind cluster logs | |
| if: failure() | |
| run: | | |
| mkdir -p /tmp/kind-logs | |
| for cluster in $(kind get clusters 2>/dev/null); do | |
| kind export logs /tmp/kind-logs/$cluster --name "$cluster" || true | |
| done | |
| - name: Upload test logs on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: e2e-external-kcp-logs | |
| path: | | |
| *.kubeconfig | |
| *.log | |
| /tmp/kind-logs/ | |
| retention-days: 3 |