Skip to content

DO NOT MERGE: plain-Windows integration check #12412

DO NOT MERGE: plain-Windows integration check

DO NOT MERGE: plain-Windows integration check #12412

Workflow file for this run

name: test
on:
push:
branches:
- master
- 'release/**'
paths-ignore:
- "docs/**"
- "website/**"
- "**.md"
pull_request:
paths-ignore:
- "docs/**"
- "website/**"
- "**.md"
env:
LIMACTL_CREATE_ARGS: ""
GOTOOLCHAIN: local
permissions:
contents: read
jobs:
lints:
name: "Lints"
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- name: Install protoc and Go plugins
run: |
sudo apt-get update
sudo apt-get install -y protobuf-compiler
make install-protoc-tools
- name: Verify generated files
run: make generate check-generated
- name: Run nobin
run: make nobin
- name: Install shellcheck
run: |
sudo apt-get update
sudo apt-get install -y shellcheck
- name: Run shellcheck
run: make shellcheck
- name: Run shfmt
run: make shfmt
- name: Install go-licenses
# TODO: move to `go tool` after upgrading to v2
run: go install github.com/google/go-licenses@v1.6.0
- name: Check licenses
run: make go-licenses
- name: Check social reputation of Go dependencies
run: make gosocialcheck
- name: Check license boilerplates
run: make ltag
- name: Check protobuf files
run: make protolint
- name: Run zizmor
uses: zizmorcore/zizmor-action@6599ee8b7a49aef6a770f63d261d214911a7ce02 # v0.6.0
with:
# No need to hide the result in https://github.com/lima-vm/lima/security (private),
# as anybody can already run zizmor locally to find vulnerabilities.
# https://github.com/lima-vm/lima/pull/4846#pullrequestreview-4135088525
advanced-security: false
lint-go:
name: "Lint Go"
timeout-minutes: 30
strategy:
matrix:
runs-on: [ubuntu-24.04, macos-26, windows-2025]
runs-on: ${{ matrix.runs-on }}
steps:
- name: Force git to use LF
# This step is required on Windows to work around golangci-lint issues with formatters. See https://github.com/golangci/golangci-lint/discussions/5840
# TODO: replace with a checkout option when https://github.com/actions/checkout/issues/226 is implemented
if: runner.os == 'Windows'
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- id: golangci-lint-version
shell: bash
working-directory: hack/tools
run: |
echo "GOLANGCI_LINT_VERSION=$(go list -m -f '{{.Version}}' github.com/golangci/golangci-lint/v2)" >> $GITHUB_OUTPUT
- name: Run golangci-lint
uses: golangci/golangci-lint-action@ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a # v9.3.0
with:
version: ${{ steps.golangci-lint-version.outputs.GOLANGCI_LINT_VERSION }}
args: --verbose
skip-cache: true
security:
name: "Vulncheck"
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
- uses: golang/govulncheck-action@032d45514ae346b1db93c04b0c90b841c370344f # v1.1.0
unit:
name: "Unit tests"
runs-on: ubuntu-24.04
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
# For non-Homebrew we have to support an old release of Go
go-version: ["oldstable", "stable"]
steps:
- name: Install test dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends qemu-utils
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: ${{ matrix.go-version }}
cache: false
- name: Unit tests
run: go test -v ./...
- name: Make
run: make
- name: Install
run: sudo make install
- name: Verify templates match `limactl edit` format
run: |
find templates -name '*.yaml' -exec limactl edit --set 'del(.nothing)' {} \;
git diff-index --exit-code HEAD
- name: Uninstall
run: sudo make uninstall
windows-wsl2:
name: "Windows tests (WSL2)"
runs-on: windows-2025
timeout-minutes: 30
steps:
- name: Set gitconfig
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- uses: ./.github/actions/windows_wsl2_setup
- uses: ./.github/actions/windows_msys2_prep
- name: Unit tests
run: go test -v ./...
- name: Make
run: make
- name: Integration tests (WSL2, Windows host)
run: |
$env:PATH = "$pwd\_output\bin;" + $env:PATH
$env:MSYS2_ENV_CONV_EXCL = 'HOME_HOST;HOME_GUEST'
$env:HOME_HOST = $(cygpath.exe "$env:USERPROFILE")
$env:HOME_GUEST = "/mnt$env:HOME_HOST"
$env:LIMACTL_CREATE_ARGS = '--vm-type=wsl2 --mount-type=wsl2 --containerd=system'
bash.exe -c "./hack/test-templates.sh templates/experimental/wsl2.yaml"
windows-qemu:
name: "Windows tests (QEMU)"
runs-on: windows-2025
timeout-minutes: 30
steps:
- name: Set gitconfig
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- uses: ./.github/actions/windows_qemu_install
- uses: ./.github/actions/windows_msys2_prep
- name: Make
run: make
- name: Integration tests (QEMU, Windows host)
run: |
$env:PATH = "$pwd\_output\bin;" + 'C:\Program Files\QEMU;' + $env:PATH
$env:MSYS2_ENV_CONV_EXCL = 'HOME_HOST;HOME_GUEST'
$env:HOME_HOST = $(cygpath.exe "$env:USERPROFILE")
$env:HOME_GUEST = "$env:HOME_HOST"
$env:LIMACTL_CREATE_ARGS = '--vm-type=qemu'
bash.exe -c "./hack/test-templates.sh templates/default.yaml"
windows-plain-wsl2:
# Smoke test that Lima's WSL2 driver works on a Windows host with only
# the bits that ship in a default Windows 10/11 install (native OpenSSH,
# wsl.exe, tar). Notably: no Git for Windows, no MSYS2, no cygpath, no
# Cygwin/MSYS2 ssh. Builds with `go build` (instead of `make`) and
# exercises the main commands in PowerShell. If this job ever needs to
# add MSYS2 / Git for Windows back to make a step pass, that means a new
# external-binary dependency was introduced and should be evaluated.
name: "Windows tests (WSL2, plain Windows host)"
runs-on: windows-2025
timeout-minutes: 30
steps:
- name: Set gitconfig
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- uses: ./.github/actions/windows_wsl2_setup
# No windows_plain_templates here: wsl2.yaml carries no `base:`, so this
# job never reads the resolved template store that action builds.
- uses: ./.github/actions/windows_plain_host
- uses: ./.github/actions/windows_plain_build
- uses: ./.github/actions/windows_plain_smoke_test
with:
template: .\templates\experimental\wsl2.yaml
lima-home-suffix: plain-wsl2
windows-plain-qemu:
# Same shape as windows-plain-wsl2 but exercises the QEMU driver. Covers
# native OpenSSH selection and cygpath-free path translation without
# MSYS2 / Git-for-Windows on PATH. The reverse-sshfs mount starts through
# the native sftp-server, but its confirmation step fails on the runner
# and sshocker treats that as non-fatal, so the mount itself is uncovered.
name: "Windows tests (QEMU, plain Windows host)"
runs-on: windows-2025
timeout-minutes: 30
steps:
- name: Set gitconfig
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- uses: ./.github/actions/windows_qemu_install
- uses: ./.github/actions/windows_plain_templates
- uses: ./.github/actions/windows_plain_host
# winget's QEMU manifest does not register a PATH entry, so add the
# install dir here, extending the scrubbed PATH= that windows_plain_host
# published through $GITHUB_ENV.
- name: Add QEMU to PATH
shell: pwsh
run: |
Add-Content -Path $env:GITHUB_ENV -Value "PATH=C:\Program Files\QEMU;$env:PATH"
- uses: ./.github/actions/windows_plain_build
- uses: ./.github/actions/windows_plain_smoke_test
with:
template: .\templates\default.yaml
lima-home-suffix: plain-qemu
# Force qemu: on Windows, `limactl create` auto-selects wsl2
# over qemu, and templates/default.yaml ships a cloud disk
# image that the wsl2 driver rejects.
vm-type: qemu
qemu:
name: "Integration tests (QEMU, macOS host)"
runs-on: macos-15-large # Intel
timeout-minutes: 120
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- name: Unit tests
run: go test -v ./...
- name: Make
run: make
- name: "Inject `no_timer_check` to kernel cmdline"
# workaround to https://github.com/lima-vm/lima/issues/84
run: |
export PATH="$PWD/_output/bin:$PATH"
./hack/inject-cmdline-to-template.sh _output/share/lima/templates/_images/ubuntu.yaml no_timer_check
- name: Install
run: sudo make install
- name: Validate jsonschema
run: make schema-limayaml.json
- name: Validate templates
# Can't validate base templates in `_default` because they have no images
run: find -L templates -name '*.yaml' ! -path '*/_default/*' | xargs limactl validate
- name: Install test dependencies
# QEMU: required by Lima itself
# bash: required by test-templates.sh (OS version of bash is too old)
# coreutils: required by test-templates.sh for the "timeout" command
# w3m : required by test-templates.sh for port forwarding tests
# socat: required by test-templates.sh for port forwarding tests
run: brew install qemu bash coreutils w3m socat
- name: "Adjust LIMACTL_CREATE_ARGS"
run: echo "LIMACTL_CREATE_ARGS=${LIMACTL_CREATE_ARGS} --vm-type=qemu" >>$GITHUB_ENV
- name: Cache image used by default.yaml
uses: ./.github/actions/setup_cache_for_template
with:
template: templates/default.yaml
- name: "Show cache"
run: ./hack/debug-cache.sh
- name: "Test default.yaml"
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
with:
timeout_minutes: 30
retry_on: error
max_attempts: 3
command: ./hack/test-templates.sh templates/default.yaml
# GHA macOS is slow and flaky, so we only test default.yaml here.
# Other yamls are tested on Linux instances.
#
- if: always()
uses: ./.github/actions/upload_failure_logs_if_exists
- name: "Show cache"
if: always()
run: ./hack/debug-cache.sh
# Non-default templates are tested on Linux instances of GHA,
# as they seem more stable than macOS instances.
qemu-linux:
name: "Integration tests (QEMU, Linux host)"
runs-on: ubuntu-24.04
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
# Most templates use 9p as the mount type
template:
- alpine.yaml
- debian.yaml # reverse-sshfs
- fedora.yaml
- archlinux.yaml
- opensuse.yaml
- docker.yaml
- ../hack/test-templates/alpine-iso-9p-writable.yaml # Covers alpine-iso.yaml
- ../hack/test-templates/net-user-v2.yaml
- ../hack/test-templates/test-misc.yaml # TODO: merge net-user-v2 into test-misc
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- name: Make
run: make
- name: Install
run: sudo make install
- name: Cache image used by templates/${{ matrix.template }}
uses: ./.github/actions/setup_cache_for_template
with:
template: templates/${{ matrix.template }}
- name: Install test dependencies
run: |
sudo apt-get update
sudo ./hack/install-qemu.sh
sudo apt-get install -y --no-install-recommends socat w3m
- name: Install ansible-playbook
run: |
sudo apt-get install -y --no-install-recommends ansible
if: matrix.template == '../hack/test-templates/test-misc.yaml'
- name: "Show cache"
run: ./hack/debug-cache.sh
- name: "Test"
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
with:
timeout_minutes: 30
retry_on: error
max_attempts: 3
command: ./hack/test-templates.sh templates/${{ matrix.template }}
- if: always()
uses: ./.github/actions/upload_failure_logs_if_exists
with:
suffix: ${{ matrix.template }}
- name: "Show cache"
run: ./hack/debug-cache.sh
bats:
name: "Integration tests (BATS)"
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
# BATS tests don't expect lima version warnings like:
# msg="treating lima version \"ea336ae\" from \"/Users/runner/.lima-bats/dummy/lima-version\" as very latest release"
fetch-depth: 0
submodules: true
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- name: Make
run: make
- name: Install
run: sudo make install
- name: Install test dependencies
run: |
sudo apt-get update
sudo ./hack/install-qemu.sh
- name: Cache image used by templates/default.yaml
uses: ./.github/actions/setup_cache_for_template
with:
template: templates/default.yaml
- name: "Run BATS integration tests"
run: make bats
env:
# The url-github.bats tests makes GitHub API requests
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Cache image used by templates/k8s.yaml
uses: ./.github/actions/setup_cache_for_template
with:
template: templates/k8s.yaml
- name: "Run BATS k8s tests"
run: ./hack/bats/lib/bats-core/bin/bats --timing ./hack/bats/extras/k8s.bats
env:
LIMA_BATS_ALL_TESTS_RETRIES: 3
- name: Cache image used by templates/freebsd.yaml
uses: ./.github/actions/setup_cache_for_template
with:
template: templates/freebsd.yaml
- name: "Run BATS freebsd tests"
run: |
set -eux -o pipefail
# xorriso is required for creating Joliet filesystem
sudo apt-get install -y xorriso
./hack/bats/lib/bats-core/bin/bats --timing ./hack/bats/extras/freebsd.bats
colima:
name: "Colima tests (QEMU, Linux host)"
runs-on: ubuntu-24.04
timeout-minutes: 120
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
# fetch-depth is set to 0 to let `limactl --version` print semver-ish version
# fetch-depth: 0 is required for Colima integration test because Colima
# checks Lima's version and requires proper semantic version format
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
submodules: true
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- name: Make
run: make
- name: Install
run: sudo make install
- name: Install colima
id: install-colima
run: |
git clone https://github.com/abiosoft/colima
cd colima
latest="$(git tag --sort=-v:refname | head -n1)"
git checkout "$latest"
make
sudo make install
echo "version=$latest" >>$GITHUB_OUTPUT
- name: Install test dependencies
run: |
sudo apt-get update
sudo ./hack/install-qemu.sh
- name: Cache colima
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/colima
key: colima-${{ steps.install-colima.outputs.version }}
lookup-only: true
- name: Run BATS colima tests
run: ./hack/bats/lib/bats-core/bin/bats --timing ./hack/bats/extras/colima.bats
vmnet:
name: "VMNet tests (QEMU)"
runs-on: macos-15-large # Intel
timeout-minutes: 120
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- name: Make
run: make
- name: "Inject `no_timer_check` to kernel cmdline"
# workaround to https://github.com/lima-vm/lima/issues/84
run: |
export PATH="$PWD/_output/bin:$PATH"
./hack/inject-cmdline-to-template.sh _output/share/lima/templates/_images/ubuntu.yaml no_timer_check
- name: Install
run: sudo make install
- name: "Adjust LIMACTL_CREATE_ARGS"
run: echo "LIMACTL_CREATE_ARGS=${LIMACTL_CREATE_ARGS} --vm-type=qemu --network=lima:shared" >>$GITHUB_ENV
- name: Cache image used by default .yaml
uses: ./.github/actions/setup_cache_for_template
with:
template: templates/default.yaml
- name: Install test dependencies
run: brew install qemu bash coreutils w3m socat
- name: Install socket_vmnet
env:
SOCKET_VMNET_VERSION: v1.2.2
run: |
(
cd ~
git clone https://github.com/lima-vm/socket_vmnet
cd socket_vmnet
git checkout $SOCKET_VMNET_VERSION
sudo git config --global --add safe.directory /Users/runner/socket_vmnet
sudo make PREFIX=/opt/socket_vmnet install
)
limactl sudoers | sudo tee /etc/sudoers.d/lima
- name: Unit test (pkg/networks) with socket_vmnet
# Set -count=1 to disable cache
run: go test -v -count=1 ./pkg/networks/...
- name: Test socket_vmnet
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
with:
timeout_minutes: 30
retry_on: error
max_attempts: 3
command: ./hack/test-templates.sh templates/default.yaml
- if: always()
uses: ./.github/actions/upload_failure_logs_if_exists
upgrade:
name: "Upgrade tests (QEMU, macOS host)"
runs-on: macos-15-large # Intel
timeout-minutes: 120
strategy:
matrix:
oldver: ["v0.15.1"] # The default VM type was always QEMU until Lima v1.0
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Fetch homebrew-core commit messages
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
# needed by ./hack/brew-install-version.sh
repository: homebrew/homebrew-core
path: homebrew-core
fetch-depth: 0
filter: tree:0
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- name: Cache image used by ${{ matrix.oldver }}/examples/ubuntu-lts.yaml
uses: ./.github/actions/setup_cache_for_template
with:
template: https://raw.githubusercontent.com/lima-vm/lima/${{ matrix.oldver }}/examples/ubuntu-lts.yaml
- name: Install test dependencies
run: |
brew install bash coreutils
# QEMU 9.1.0 seems to break on GitHub runners, both on Monterey and Ventura
# We revert back to 8.2.1, which seems to work fine
git config --global user.name "GitHub Actions Bot"
git config --global user.email "nobody@localhost"
./hack/brew-install-version.sh qemu 8.2.1
- name: Test
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
with:
timeout_minutes: 30
retry_on: error
max_attempts: 3
command: ./hack/test-upgrade.sh ${{ matrix.oldver }} ${{ github.sha }}
- if: always()
uses: ./.github/actions/upload_failure_logs_if_exists
vz:
name: "Integration tests (vz)"
runs-on: macos-15-large # Intel
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
template:
- default.yaml
steps:
- name: "Adjust LIMACTL_CREATE_ARGS"
# --cpus=1 is needed for running vz on GHA: https://github.com/lima-vm/lima/pull/1511#issuecomment-1574937888
run: echo "LIMACTL_CREATE_ARGS=${LIMACTL_CREATE_ARGS} --cpus 1 --memory 1" >>$GITHUB_ENV
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- name: Make
run: make
- name: Install
run: sudo make install
- name: Cache image used by templates/${{ matrix.template }}
uses: ./.github/actions/setup_cache_for_template
with:
template: templates/${{ matrix.template }}
- name: Install test dependencies
run: brew install bash coreutils w3m socat
- name: Uninstall qemu
run: brew uninstall --ignore-dependencies --force qemu
- name: Test
run: ./hack/test-templates.sh templates/${{ matrix.template }}
- if: failure()
uses: ./.github/actions/upload_failure_logs_if_exists
with:
suffix: ${{ matrix.template }}
# gomodjail is a library sandbox for Go
# https://github.com/AkihiroSuda/gomodjail
#
# This is an early experiment.
# CI failures that only occurs with gomodjail shall not block merging PRs.
gomodjail:
name: "gomodjail (experimental; failures shall not block merging PRs)"
runs-on: macos-15-large # Intel
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- name: Install gomodjail
run: |
set -eux -o pipefail
git clone https://github.com/AkihiroSuda/gomodjail
cd gomodjail
make binaries install
- name: Install Lima
# gomodjail depends on symbols
run: |
make KEEP_SYMBOLS=1 binaries
sudo make install
- name: Cache image used by templates/default.yaml
uses: ./.github/actions/setup_cache_for_template
with:
template: templates/default.yaml
- name: Smoke test
run: gomodjail run --go-mod=./go.mod -- limactl start --tty=false
cross:
name: "Cross-compile (NetBSD, DragonFlyBSD)"
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- run: GOOS=netbsd go build ./...
- run: GOOS=dragonfly go build ./...
qemu-linux-old:
name: "Smoke tests (QEMU, old Linux host)"
runs-on: ubuntu-22.04 # QEMU 6.2
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: stable
cache: false
- name: Make
run: make
- name: Install
run: sudo make install
- name: Cache image used by templates/default.yaml
uses: ./.github/actions/setup_cache_for_template
with:
template: templates/default.yaml
- name: Install test dependencies
run: |
sudo apt-get update
sudo ./hack/install-qemu.sh
- name: Smoke test
run: limactl start --tty=false