Skip to content

Refactor immutability checks across various handlers and services to use utility functions for better consistency #310

Refactor immutability checks across various handlers and services to use utility functions for better consistency

Refactor immutability checks across various handlers and services to use utility functions for better consistency #310

name: Platform API + Gateway E2E
# Combined live-traffic end-to-end test: the real platform-api control plane
# deploys an API to the real gateway data plane, and a request through the
# gateway ingress must reach the sample backend — exercised on every database.
#
# This builds the gateway (Envoy) images, so it is intentionally not on the
# per-PR critical path: it runs on demand and when the e2e itself changes.
on:
workflow_dispatch:
pull_request:
branches:
- main
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true
jobs:
e2e:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
db: [sqlite, postgres, sqlserver]
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0
with:
go-version: '1.26.2'
cache-dependency-path: '**/go.sum'
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
- name: Build platform-api image
run: make -C platform-api build IMAGE_NAME=platform-api VERSION=it-e2e
- name: Build gateway images (controller + runtime)
run: make build VERSION=it-e2e
working-directory: gateway
- name: Build sample-service image
run: make build
working-directory: samples/sample-service
- name: Run combined e2e (${{ matrix.db }})
run: E2E_DB=${{ matrix.db }} go test -run TestFeatures -count=1 -v -timeout 25m ./...
working-directory: tests/integration-e2e