Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 21 additions & 12 deletions .github/workflows/functional_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ on:
paths:
- "go.mod"
- "**.go"
- "**.yml"
- "**.yaml"
- "Makefile"
- "!site/**"
- "!**.md"
Expand All @@ -15,6 +17,8 @@ on:
paths:
- "go.mod"
- "**.go"
- "**.yml"
- "**.yaml"
- "Makefile"
- "!site/**"
- "!**.md"
Expand Down Expand Up @@ -43,7 +47,7 @@ jobs:
run: go mod download
- name: Build minikube and e2e test binaries
run: |
make e2e-linux-amd64 e2e-darwin-amd64
make e2e-linux-amd64 e2e-darwin-amd64 e2e-linux-arm64
cp -r test/integration/testdata ./out
- name: Upload Test Binaries
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
Expand All @@ -53,7 +57,7 @@ jobs:
functional-test:
name: ${{ matrix.name }}
needs: build-test-binaries
runs-on: ${{ matrix.os }}
runs-on: ${{ matrix.runner }}
permissions:
contents: none
strategy:
Expand All @@ -63,43 +67,48 @@ jobs:
- name: docker-docker-ubuntu22.04-x86_64
driver: docker
cruntime: docker
os: ubuntu-22.04
runner: ubuntu-22.04
test-timeout: 15m
- name: docker-containerd-ubuntu-22.04-x86_64
driver: docker
cruntime: containerd
extra-start-args: --container-runtime=containerd
os: ubuntu-22.04
runner: ubuntu-22.04
test-timeout: 15m
- name: docker-containerd-rootless-ubuntu-22.04-x86_64
driver: docker
cruntime: containerd
os: ubuntu-22.04
runner: ubuntu-22.04
extra-start-args: --container-runtime=containerd --rootless
rootless: true
test-timeout: 15m
- name: podman-docker-ubuntu-24.04-x86_64
driver: podman
cruntime: docker
os: ubuntu-24.04
runner: ubuntu-24.04
test-timeout: 15m
- name: baremetal-docker-ubuntu-22.04-x86_64
driver: none
cruntime: docker
os: ubuntu-22.04
runner: ubuntu-22.04
test-timeout: 7m
- name: qemu-docker-macos-13-x86_64
driver: qemu
cruntime: docker
os: macos-13
runner: macos-13
extra-start-args: --network socket_vmnet
test-timeout: 50m
- name: vfkit-docker-macos-13-x86_64
driver: vfkit
cruntime: docker
os: macos-13
runner: macos-13
extra-start-args: --network vmnet-shared
test-timeout: 50m
- name: docker-docker-ubuntu-arm64
driver: docker
cruntime: docker
runner: [self-hosted, arm64]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

now that we are adding "Runner" to the matrix, maybe we can remove "os" if it is not used anywhere ? or make them use runner.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes we can remove the os

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we would need to see if we can make that Only one of the Matrix items be required to have ok-to-test label and the test be as it is, can you see if thats possible?

feel free to make a Dummy Repo just to check that in a Dummy repo with a dummy workflow on your own repo

Copy link
Contributor Author

@divysinghvi divysinghvi Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Medhya i looked more into it thw core issue having is that GitHub Actions doesn't support conditional logic at the matrix definition level so we can't add a check in the include section , if that would have been possible it would be easier but it's not but we can add a check in the steps portion
- name: Check if arm64 job should run if: matrix.name == 'docker-docker-ubuntu-arm64' && github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'ok-to-test') run: | echo "Skipping arm64 job - 'ok-to-test' label not found on PR" exit 1
also please ignore the commits i am experimenting for the main pr i will close this on and create a fresh one once i figure this thing out thanks

test-timeout: 25m
steps:
- name: Info Block (macOS)
if: runner.os == 'macOS'
Expand Down Expand Up @@ -259,7 +268,7 @@ jobs:
dockerd-rootless-setuptool.sh install -f
docker context use rootless
- name: Ensure bootpd is enabled (macos-13)
if: matrix.os == 'macos-13'
if: contains(matrix.runner, 'macos-13')
shell: bash
run: |
set -x
Expand Down Expand Up @@ -369,12 +378,12 @@ jobs:
fi
kubectl version --client=true
- name: Install qemu and socket_vmnet (macos)
if: matrix.os == 'macos-13' && matrix.driver == 'qemu'
if: contains(matrix.runner, 'macos-13') && matrix.driver == 'qemu'
run: |
brew install qemu socket_vmnet
HOMEBREW=$(which brew) && sudo ${HOMEBREW} services start socket_vmnet
- name: Install vfkit and vmnet_helper (macos)
if: matrix.os == 'macos-13' && matrix.driver == 'vfkit'
if: contains(matrix.runner, 'macos-13') && matrix.driver == 'vfkit'
run: |
brew install vfkit
curl -fsSL https://github.com/minikube-machine/vmnet-helper/releases/latest/download/install.sh | sudo VMNET_INTERACTIVE=0 bash
Expand Down
2 changes: 2 additions & 0 deletions cmd/minikube/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -308,3 +308,5 @@ func propagateDockerContextToEnv() {
os.Setenv("DOCKER_HOST", dockerEPMeta.Host)
}
}

//added for testing purposes