Skip to content

fix(workflows): Install missing nix tools (#2184) #910

fix(workflows): Install missing nix tools (#2184)

fix(workflows): Install missing nix tools (#2184) #910

Workflow file for this run

name: tests
on:
push:
branches: [staging, stable]
pull_request:
types: [opened, synchronize, reopened]
branches: [staging]
paths:
- '**'
- '!.github/**'
- '.github/workflows/tests.yaml'
- '!README.md'
jobs:
unit:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-24.04
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Generate Suffix
shell: bash
id: suffix
run: echo "suffix=$(date +%s)" >> "$GITHUB_OUTPUT"
- name: Set up BuildKit
shell: bash
env:
SUFFIX: ${{ steps.suffix.outputs.suffix }}
run: |
docker run \
--rm \
-itd \
--privileged \
--name "buildkitd_${GITHUB_RUN_ID}_${SUFFIX}" \
-v /run/buildkit:/run/buildkit:rw \
moby/buildkit:v0.19.0;
timeout 60 bash -c 'while [ ! -S "/run/buildkit/buildkitd.sock" ]; do sleep 1; done';
sudo chmod 666 /run/buildkit/buildkitd.sock;
- uses: actions/setup-go@v5
with:
go-version: 1.24.0
cache: false
- name: Set Go variables
id: goenv
run: |
{
echo "cache=$(go env GOCACHE)"
echo "modcache=$(go env GOMODCACHE)"
echo "mod=$(go env GOMOD)"
} >>"$GITHUB_OUTPUT"
- name: Go caches
uses: actions/cache@v4
with:
path: |
${{ steps.goenv.outputs.cache }}
${{ steps.goenv.outputs.modcache }}
key: ${{ github.job }}-${{ runner.os }}-go-${{ hashFiles(steps.goenv.outputs.mod) }}
restore-keys: |
${{ github.job }}-${{ runner.os }}-go-
- name: Run tests
run: make test-unit
- name: Stop BuildKit
if: always()
shell: bash
run: docker stop "buildkitd_${GITHUB_RUN_ID}_${{ steps.suffix.outputs.suffix }}" || true
e2e-cli:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-24.04
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.24.0
cache: false
- name: Set Go variables
id: goenv
run: |
{
echo "cache=$(go env GOCACHE)"
echo "modcache=$(go env GOMODCACHE)"
echo "mod=$(go env GOMOD)"
} >>"$GITHUB_OUTPUT"
- name: Go caches
uses: actions/cache@v4
with:
path: |
${{ steps.goenv.outputs.cache }}
${{ steps.goenv.outputs.modcache }}
key: ${{ github.job }}-${{ runner.os }}-go-${{ hashFiles(steps.goenv.outputs.mod) }}
restore-keys: |
${{ github.job }}-${{ runner.os }}-go-
- name: Run framework unit tests
env:
KRAFTKIT_NO_WARN_SUDO: true
KRAFTKIT_NO_CHECK_UPDATES: true
DOCKER: ''
run: make test-framework DISTDIR="$(go env GOPATH)"/bin
- name: Run e2e tests
env:
KRAFTKIT_NO_WARN_SUDO: true
KRAFTKIT_NO_CHECK_UPDATES: true
DOCKER: ''
run: make test-e2e DISTDIR="$(go env GOPATH)"/bin
e2e-cloud-cli:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-24.04
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.24.0
cache: false
- name: Set Go variables
id: goenv
run: |
{
echo "cache=$(go env GOCACHE)"
echo "modcache=$(go env GOMODCACHE)"
echo "mod=$(go env GOMOD)"
} >>"$GITHUB_OUTPUT"
- name: Go caches
uses: actions/cache@v4
with:
path: |
${{ steps.goenv.outputs.cache }}
${{ steps.goenv.outputs.modcache }}
key: ${{ github.job }}-${{ runner.os }}-go-${{ hashFiles(steps.goenv.outputs.mod) }}
restore-keys: |
${{ github.job }}-${{ runner.os }}-go-
- name: Run framework unit tests
env:
KRAFTKIT_NO_WARN_SUDO: true
KRAFTKIT_NO_CHECK_UPDATES: true
DOCKER: ''
run: make test-framework DISTDIR="$(go env GOPATH)"/bin
- name: Run cloud e2e tests
env:
KRAFTCLOUD_METRO: ${{ secrets.KRAFTCLOUD_METRO }}
KRAFTCLOUD_TOKEN: ${{ secrets.KRAFTCLOUD_TOKEN }}
KRAFTCLOUD_USER: ${{ env.KRAFTCLOUD_USER }}
KRAFTKIT_NO_CHECK_UPDATES: true
KRAFTKIT_NO_WARN_SUDO: true
DOCKER: ''
run: make test-cloud-e2e DISTDIR="$(go env GOPATH)"/bin