Skip to content

Commit

Docker smoke test on hosted runners

syntaqxcommitted Parent87e7dc5Browse files
1 file+50−00/1 viewed
+50−0
1+# Checks Docker on g1t's hosted runners: a service container reached by
2+# name, a step run in an image, a build, and a job inside a container.
3+name: Docker
4+
5+on:
6+ workflow_dispatch:
7+
8+permissions:
9+ contents: read
10+
11+jobs:
12+ services:
13+ name: Services and docker run
14+ runs-on: ubuntu-latest
15+ timeout-minutes: 15
16+ services:
17+ redis:
18+ image: redis:7-alpine
19+ options: >-
20+ --health-cmd "redis-cli ping"
21+ --health-interval 2s
22+ --health-timeout 2s
23+ --health-retries 15
24+ ports:
25+ - 6379:6379
26+ steps:
27+ - uses: actions/checkout@v5
28+ - name: Docker is there
29+ run: docker version
30+ - name: Reach the service by name
31+ run: docker run --rm redis:7-alpine redis-cli -h redis ping
32+ - name: Build an image
33+ run: |
34+ printf 'FROM alpine:3.20\nRUN echo built > /built\nCMD cat /built\n' > Dockerfile.smoke
35+ docker build -t smoke:latest -f Dockerfile.smoke .
36+ docker run --rm smoke:latest
37+ - name: A step in an image
38+ uses: docker://alpine:3.20
39+ with:
40+ args: echo hello from a docker step
41+
42+ container:
43+ name: Job in a container
44+ runs-on: ubuntu-latest
45+ timeout-minutes: 15
46+ container:
47+ image: node:24-bookworm-slim
48+ steps:
49+ - uses: actions/checkout@v5
50+ - run: node --version && cat /etc/os-release | head -2