Files
NodecastV2/.github/workflows/container.yml
2026-10-13 19:02:15 -07:00

42 lines
1.5 KiB
YAML

name: Container Smoke Test
on:
pull_request:
paths: [Dockerfile, .dockerignore, 'server/**', scripts/healthcheck.cjs, 'package*.json', .github/workflows/container.yml]
permissions:
contents: read
jobs:
container:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v7
- name: Build and check readiness
shell: bash
run: |
set -euo pipefail
mkdir -p data
printf 'build context sentinel' > .env.container-sentinel
printf 'build context sentinel' > data/container-sentinel
docker build -t nodecast-smoke .
docker run -d --name nodecast-smoke nodecast-smoke
for attempt in $(seq 1 60); do
if docker exec nodecast-smoke node scripts/healthcheck.cjs; then
docker exec nodecast-smoke sh -c 'test ! -e /app/.env.container-sentinel && test ! -e /app/data/container-sentinel'
docker exec nodecast-smoke lspci --version
docker exec nodecast-smoke node -e "require('./server/services/hwDetect').detectQuickSync('ffmpeg').then(q => { if (q.available) process.exit(1); })"
exit 0
fi
sleep 2
done
docker logs nodecast-smoke
exit 1
- name: Show container logs on failure
if: failure()
run: docker logs nodecast-smoke || true
- name: Remove smoke container
if: always()
run: docker rm -f nodecast-smoke || true