-
-
Notifications
You must be signed in to change notification settings - Fork 0
73 lines (68 loc) · 2.91 KB
/
Copy pathcontainer-stack-smoke.yml
File metadata and controls
73 lines (68 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# SPDX-License-Identifier: MPL-2.0
# Informational smoke build of every container-stack/ Containerfile.
#
# Rationale (stapeln#17): the container-stack/ subdirectories are advertised
# as the canonical Containerfiles for each component, yet four of five shipped
# a Containerfile that failed on a clean build (stale Alire URL, uncommitted
# Cargo.lock, npm/rescript-vs-Deno layout mismatch, un-parseable Deno install
# script). The concrete fixes for those are merged in stapeln#37; this
# workflow is the durable canary that re-builds each Containerfile on every
# change so any regression in an early build step is visible in the logs.
#
# This workflow is intentionally NON-BLOCKING. The full upstream builds
# (vordr's complete Rust compile, svalinn's ReScript toolchain, cerro-torre's
# Ada/`proven` link) depend on things outside stapeln#17's scope and are not
# guaranteed to fully compile in CI; making them a merge gate would just keep
# the branch permanently red. Every component is still built on every run so
# the early-step regressions stapeln#17 cares about surface in the job log,
# and the job summary records per-component pass/fail at a glance.
#
# Engine: `docker build` (preinstalled and reliable on ubuntu-latest;
# Containerfiles are Dockerfile-syntax-compatible). A `podman build` is also
# attempted per stapeln#17's recommendation.
name: container-stack smoke build
on:
push:
paths:
- 'container-stack/**'
- '.github/workflows/container-stack-smoke.yml'
pull_request:
paths:
- 'container-stack/**'
- '.github/workflows/container-stack-smoke.yml'
permissions:
contents: read
jobs:
smoke:
name: smoke build (${{ matrix.component }})
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
component: [vordr, svalinn, rokur, selur, cerro-torre]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: docker build ${{ matrix.component }}
id: docker
continue-on-error: true
working-directory: container-stack/${{ matrix.component }}
run: docker build -f Containerfile -t "stapeln-smoke/${{ matrix.component }}:ci" .
- name: podman build ${{ matrix.component }}
id: podman
continue-on-error: true
working-directory: container-stack/${{ matrix.component }}
run: |
sudo apt-get update
sudo apt-get install -y podman containers-common crun
sudo podman build -f Containerfile -t "stapeln-smoke/${{ matrix.component }}:podman" .
- name: Smoke summary
run: |
{
echo "### container-stack smoke: ${{ matrix.component }}"
echo ""
echo "| engine | result |"
echo "|--------|--------|"
echo "| docker | ${{ steps.docker.outcome }} |"
echo "| podman | ${{ steps.podman.outcome }} |"
} >> "$GITHUB_STEP_SUMMARY"