Skip to content

E2E Tests

E2E Tests #255

Workflow file for this run

name: E2E Tests
on:
push:
pull_request:
merge_group:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test-e2e:
name: E2E Tests (${{ matrix.builder }}/${{ matrix.deployer }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
builder: [pack, s2i]
deployer: [knative, raw, keda]
steps:
- name: Clone the code
uses: actions/checkout@v6
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod
- name: Install the latest version of kind
run: |
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
- name: Verify kind installation
run: kind version
- name: Install helm
uses: azure/setup-helm@v5.0.0
# func CLI is needed in some e2e tests ATM
- name: Install func cli
uses: functions-dev/action@main
with:
version: nightly # use nightly as long as we use the latest in the operator too
- name: Setup KinD cluster
run: make create-kind-cluster
- name: Install func-operator
run: make docker-build docker-push deploy
- name: Running e2e Tests
env:
REGISTRY_INSECURE: true
REGISTRY: kind-registry:5000
DEFAULT_BUILDER: ${{ matrix.builder }}
DEFAULT_DEPLOYER: ${{ matrix.deployer }}
run: make test-e2e
- name: Collect Kubernetes artifacts
if: failure()
run: |
mkdir -p /tmp/k8s-artifacts
kubectl logs -n func-operator-system -l control-plane=controller-manager --tail=-1 --all-containers --prefix --timestamps > /tmp/k8s-artifacts/func-operator.log
kubectl get functions -A -o yaml > /tmp/functions.yaml
- name: Upload Kubernetes artifacts
if: failure()
uses: actions/upload-artifact@v7
with:
name: func-operator-logs-${{ matrix.builder }}-${{ matrix.deployer }}
path: /tmp/k8s-artifacts/
retention-days: 7