diff --git a/.github/workflows/operator-e2e-integration-tests.yml b/.github/workflows/operator-e2e-integration-tests.yml new file mode 100644 index 0000000000..23c250cc53 --- /dev/null +++ b/.github/workflows/operator-e2e-integration-tests.yml @@ -0,0 +1,58 @@ +# .github/workflows/operator-e2e-integration-tests.yml +name: Operator e2e tests + +on: + push: + branches: + - main + pull_request: + types: + - opened + - synchronize + - labeled + +jobs: + operator-e2e-tests: + if: + ((github.event.action == 'labeled' && (github.event.label.name == 'approved' || github.event.label.name == 'lgtm' || github.event.label.name == 'ok-to-test')) || + (github.event.action != 'labeled' && (contains(github.event.pull_request.labels.*.name, 'ok-to-test') || contains(github.event.pull_request.labels.*.name, 'approved') || contains(github.event.pull_request.labels.*.name, 'lgtm')))) && + github.repository == 'feast-dev/feast' + runs-on: ubuntu-latest + + services: + kind: + # Specify the Kubernetes version + image: kindest/node:v1.30.6 + + env: + KIND_CLUSTER: "operator-e2e-cluster" + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.21.0' + + - name: Create KIND cluster + run: | + kind create cluster --name $KIND_CLUSTER --wait 5m + + - name: Set up kubernetes context + run: | + kubectl config use-context kind-$KIND_CLUSTER + echo "kind context is switched to cluster kind-$KIND_CLUSTER" + + - name: Run E2E tests + run: | + # Run the e2e tests + cd infra/feast-operator/ + make test-e2e + + - name: Clean up + if: always() + run: | + # Delete the KIND cluster after tests + kind delete cluster --name kind-$KIND_CLUSTER diff --git a/infra/feast-operator/test/utils/utils.go b/infra/feast-operator/test/utils/utils.go index cfd9e59582..1027041273 100644 --- a/infra/feast-operator/test/utils/utils.go +++ b/infra/feast-operator/test/utils/utils.go @@ -109,6 +109,7 @@ func LoadImageToKindClusterWithName(name string) error { if v, ok := os.LookupEnv("KIND_CLUSTER"); ok { cluster = v } + fmt.Println("cluster used in the test is -", cluster) kindOptions := []string{"load", "docker-image", name, "--name", cluster} cmd := exec.Command("kind", kindOptions...) _, err := Run(cmd)