Docker smoke test on hosted runners
1 file+50−00/1 viewed
| 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 |