mirror of
https://github.com/open-cluster-management-io/ocm.git
synced 2026-05-17 06:37:48 +00:00
Replace imagebuilder with docker/podman for building images, enabling e2e tests to run on macOS. This change supports both Docker Desktop and Podman on macOS (including Apple Silicon) and Linux. Key changes: - Add test/kind-images.mk for auto-detecting runtime and architecture - Update test-e2e target to build and load images automatically - Add SKIP_IMAGE_BUILD flag to skip image building when only tests change - Add clean-e2e-env target for proper test environment cleanup - Simplify GitHub Actions workflows (remove imagebuilder steps) - Set default KUBECONFIG to ~/.kube/config - Add comprehensive e2e testing documentation The build system now automatically: - Detects docker or podman - Detects kind cluster architecture (amd64/arm64) - Builds images with correct platform flag - Handles different image loading methods for docker vs podman Tested successfully on macOS with podman and Apple Silicon (79/83 tests passed). Signed-off-by: Jian Qiu <jqiu@redhat.com>
134 lines
4.2 KiB
YAML
134 lines
4.2 KiB
YAML
name: E2E
|
|
|
|
on:
|
|
workflow_dispatch: {}
|
|
pull_request:
|
|
paths-ignore:
|
|
- 'solutions/**'
|
|
- 'assets/**'
|
|
- 'troubleshooting/**'
|
|
- ".github/ISSUE_TEMPLATE/*"
|
|
- 'README.md'
|
|
- '*.md'
|
|
branches:
|
|
- main
|
|
- release-*
|
|
|
|
env:
|
|
GO_VERSION: '1.25'
|
|
GO_REQUIRED_MIN_VERSION: ''
|
|
USE_EXISTING_CLUSTER: false # set to true to use an existing kind cluster for debugging with act
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
e2e:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: add permisson to docker.sock
|
|
run: sudo chown runner:docker /var/run/docker.sock
|
|
if: ${{ env.ACT }} # this step only runs locally when using the https://github.com/nektos/act to debug the e2e
|
|
- name: Checkout
|
|
uses: actions/checkout@v6.0.2
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
- name: Setup kind
|
|
uses: engineerd/setup-kind@v0.6.2
|
|
with:
|
|
version: v0.22.0
|
|
skipClusterCreation: ${{ env.USE_EXISTING_CLUSTER }}
|
|
- name: Set KUBECONFIG
|
|
run: |
|
|
mkdir -p /home/runner/.kube
|
|
kind get kubeconfig > /home/runner/.kube/config
|
|
if: ${{ env.USE_EXISTING_CLUSTER }}
|
|
- name: Test E2E
|
|
run: |
|
|
IMAGE_TAG=e2e make test-e2e
|
|
env:
|
|
KUBECONFIG: /home/runner/.kube/config
|
|
e2e-hosted:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: add permisson to docker.sock
|
|
run: sudo chown runner:docker /var/run/docker.sock
|
|
if: ${{ env.ACT }} # this step only runs locally when using the https://github.com/nektos/act to debug the e2e
|
|
- name: Checkout
|
|
uses: actions/checkout@v6.0.2
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
- name: Setup kind
|
|
uses: engineerd/setup-kind@v0.6.2
|
|
with:
|
|
version: v0.22.0
|
|
skipClusterCreation: ${{ env.USE_EXISTING_CLUSTER }}
|
|
- name: Set KUBECONFIG
|
|
run: |
|
|
mkdir -p /home/runner/.kube
|
|
kind get kubeconfig > /home/runner/.kube/config
|
|
if: ${{ env.USE_EXISTING_CLUSTER }}
|
|
- name: Test E2E
|
|
run: |
|
|
IMAGE_TAG=e2e KLUSTERLET_DEPLOY_MODE=SingletonHosted make test-e2e
|
|
env:
|
|
KUBECONFIG: /home/runner/.kube/config
|
|
e2e-singleton:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: add permisson to docker.sock
|
|
run: sudo chown runner:docker /var/run/docker.sock
|
|
if: ${{ env.ACT }} # this step only runs locally when using the https://github.com/nektos/act to debug the e2e
|
|
- name: Checkout
|
|
uses: actions/checkout@v6.0.2
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
- name: Setup kind
|
|
uses: engineerd/setup-kind@v0.6.2
|
|
with:
|
|
version: v0.22.0
|
|
skipClusterCreation: ${{ env.USE_EXISTING_CLUSTER }}
|
|
- name: Set KUBECONFIG
|
|
run: |
|
|
mkdir -p /home/runner/.kube
|
|
kind get kubeconfig > /home/runner/.kube/config
|
|
if: ${{ env.USE_EXISTING_CLUSTER }}
|
|
- name: Test E2E
|
|
run: |
|
|
IMAGE_TAG=e2e KLUSTERLET_DEPLOY_MODE=Singleton make test-e2e
|
|
env:
|
|
KUBECONFIG: /home/runner/.kube/config
|
|
e2e-grpc:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: add permisson to docker.sock
|
|
run: sudo chown runner:docker /var/run/docker.sock
|
|
if: ${{ env.ACT }} # this step only runs locally when using the https://github.com/nektos/act to debug the e2e
|
|
- name: Checkout
|
|
uses: actions/checkout@v6.0.2
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
- name: Setup kind
|
|
uses: engineerd/setup-kind@v0.6.2
|
|
with:
|
|
version: v0.22.0
|
|
skipClusterCreation: ${{ env.USE_EXISTING_CLUSTER }}
|
|
- name: Set KUBECONFIG
|
|
run: |
|
|
mkdir -p /home/runner/.kube
|
|
kind get kubeconfig > /home/runner/.kube/config
|
|
if: ${{ env.USE_EXISTING_CLUSTER }}
|
|
- name: Test E2E
|
|
run: |
|
|
IMAGE_TAG=e2e REGISTRATION_DRIVER=grpc make test-e2e
|
|
env:
|
|
KUBECONFIG: /home/runner/.kube/config
|