Skip to content

smoke-test

smoke-test #337

Workflow file for this run

name: smoke-test
# Builds socket-basics image variants and verifies all baked-in tools respond.
# Calls _docker-pipeline.yml in smoke-only mode (no push to registries).
on:
push:
branches: [main]
paths:
- 'Dockerfile'
- 'Dockerfile.heavy'
- 'scripts/docker-heavy-entrypoint.sh'
- 'scripts/smoke-test-docker.sh'
- '.github/workflows/smoke-test.yml'
- '.github/workflows/_docker-pipeline.yml'
pull_request:
paths:
- 'Dockerfile'
- 'Dockerfile.heavy'
- 'scripts/docker-heavy-entrypoint.sh'
- 'scripts/smoke-test-docker.sh'
- '.github/workflows/smoke-test.yml'
- '.github/workflows/_docker-pipeline.yml'
schedule:
- cron: '0 */12 * * *' # every 12 hours
workflow_dispatch:
permissions:
contents: read
concurrency:
group: smoke-test-${{ github.ref }}
cancel-in-progress: true
jobs:
# Native build + smoke per arch. amd64 covers the standard runner; arm64
# covers ubuntu-24.04-arm and Apple Silicon self-hosted runners (issue #69).
# Native runners build ~5x faster than QEMU and exercise the real binaries.
smoke:
name: smoke (${{ matrix.image }}, ${{ matrix.arch }})
strategy:
fail-fast: false
matrix:
include:
- image: socket-basics
dockerfile: Dockerfile
check_set: main
arch: amd64
runs_on: ubuntu-latest
- image: socket-basics
dockerfile: Dockerfile
check_set: main
arch: arm64
runs_on: ubuntu-24.04-arm
- image: socket-basics-heavy
dockerfile: Dockerfile.heavy
check_set: heavy
arch: amd64
runs_on: ubuntu-latest
- image: socket-basics-heavy
dockerfile: Dockerfile.heavy
check_set: heavy
arch: arm64
runs_on: ubuntu-24.04-arm
uses: ./.github/workflows/_docker-pipeline.yml
with:
name: ${{ matrix.image }}
dockerfile: ${{ matrix.dockerfile }}
context: .
check_set: ${{ matrix.check_set }}
runs_on: ${{ matrix.runs_on }}
arch_label: ${{ matrix.arch }}
push: false