Skip to content

[pull] master from kubernetes:master #663

[pull] master from kubernetes:master

[pull] master from kubernetes:master #663

Workflow file for this run

# Boot Smoke Test only tests Bare VM (start,stop,delete) and not any minikube/kubernetes functionality.
name: Smoke Test
on:
push:
branches: [ master ]
paths:
- "go.mod"
- "**.go"
- "Makefile"
- "!hack/**"
- "!site/**"
- "!**.md"
- "!**.json"
pull_request:
paths:
- "go.mod"
- "**.go"
- "Makefile"
- ".github/workflows/smoke-test.yml"
- "!hack/**"
- "!site/**"
- "!**.md"
- "!**.json"
workflow_dispatch:
env:
GOPROXY: https://proxy.golang.org
LOG_ARGS: --v=8 --alsologtostderr
permissions:
contents: read
# Limit one unit test job running per PR/Branch
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
# For example, if you push multiple commits to a pull request in quick succession, only the latest workflow run will continue
cancel-in-progress: true
jobs:
minikube-vm-boot:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: qemu-docker-macos-15-x86
driver: qemu
os: macos-15-intel
start_flags: --network socket_vmnet --force
sudo: "sudo"
- name: vfkit-docker-macos-15-x86
driver: vfkit
os: macos-15-intel
start_flags: --network vmnet-shared --force
sudo: "sudo"
- name: docker-docker-ubuntu-24.04-x86
driver: docker
os: ubuntu-24.04
start_flags: ""
sudo: ""
- name: docker-docker-ubuntu-24.04-arm
driver: docker
os: ubuntu-24.04-arm
start_flags: ""
sudo: ""
steps:
- id: info-block
uses: medyagh/info-block@main
- name: Disable spotlight indexing (macos)
if: contains(matrix.os, 'macos')
run: |
# Disable indexing globally
sudo mdutil -a -i off
# Erase Existing Indexes
sudo mdutil -E /
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
- uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5
with:
go-version-file: go.mod
cache: true
- name: Download Golang Dependencies
run: go mod download
- name: Build Binaries
run: make
- name: Update brew (macos)
if: contains(matrix.os, 'macos')
run: brew update
- name: Install tools (macos)
if: contains(matrix.os, 'macos')
run: brew install tree
- name: Install vfkit and vmnet-helper (macos)
if: 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
- name: Install qemu and socket_vmnet (macos)
if: contains(matrix.os, 'macos') && matrix.driver == 'qemu'
run: |
brew install qemu socket_vmnet
HOMEBREW=$(which brew) && sudo ${HOMEBREW} services start socket_vmnet
- name: Inspect host before test (macos)
if: contains(matrix.os, 'macos')
run: |
echo "=== Top ==="
top -l 2 -s 10 -n 20 -stats pid,command,cpu,time,mem
echo "=== Interfaces ==="
ifconfig -u
echo "=== Routing table ==="
netstat -rn -f inet
echo "=== Packet Filter ==="
sudo pfctl -s all || true
- name: Start minikube (1st boot)
run: |
${{ matrix.sudo }} ./out/minikube start \
${{ env.LOG_ARGS }} \
--no-kubernetes \
--cpus 2 \
--memory 3gb \
--driver ${{ matrix.driver }} \
${{ matrix.start_flags }}
- name: Inspect host after test (macos)
if: always() && contains(matrix.os, 'macos')
run: |
echo "=== Top ==="
top -l 2 -s 10 -n 20 -stats pid,command,cpu,time,mem
echo "=== Interfaces ==="
ifconfig -u
echo "=== Routing table ==="
netstat -rn -f inet
echo "=== Packet Filter ==="
sudo pfctl -s all || true
- name: Inspect minikube
if: always()
run: |
${{ matrix.sudo }} tree -h ~/.minikube
machine="$HOME/.minikube/machines/minikube"
machine_logs=$(${{ matrix.sudo }} find "$machine" -name "*.log")
minikube_logs="$HOME/.minikube/logs/lastStart.txt"
for f in $machine_logs $minikube_logs /var/db/dhcpd_leases; do
echo "==> $f <=="
${{ matrix.sudo }} head -n 1000 "$f" || true
done
- name: Stop minikube
run: ${{ matrix.sudo }} ./out/minikube stop ${{ env.LOG_ARGS }}
- name: Start minikube again (2nd boot)
run: ${{ matrix.sudo }} ./out/minikube start ${{ env.LOG_ARGS }} ${{ matrix.start_flags }}
- name: Delete minikube
run: ${{ matrix.sudo }} ./out/minikube delete ${{ env.LOG_ARGS }}