mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-16 08:17:11 +00:00
53 lines
1.9 KiB
YAML
53 lines
1.9 KiB
YAML
name: Smoke Test – ccs.kaitran.ca/docker-compose.yaml
|
||
|
||
on:
|
||
release:
|
||
types:
|
||
- published
|
||
schedule:
|
||
# Nightly at 07:00 UTC
|
||
- cron: "0 7 * * *"
|
||
workflow_dispatch:
|
||
inputs:
|
||
do_up:
|
||
description: >
|
||
Also run `docker compose up -d`, wait for healthcheck, run the
|
||
network-contract test against the downloaded URL compose file, then
|
||
tear down. Skipped by default (parse-only).
|
||
required: false
|
||
type: boolean
|
||
default: false
|
||
|
||
jobs:
|
||
smoke-test:
|
||
name: curl + parse (+ optional up/down + network-contract)
|
||
runs-on: [self-hosted, linux, x64, cliproxy]
|
||
|
||
steps:
|
||
- name: Checkout (for test scripts)
|
||
uses: actions/checkout@v4
|
||
with:
|
||
persist-credentials: false
|
||
|
||
- name: Download compose from canonical URL
|
||
run: |
|
||
# Keep this as a plain fetch. curl --retry only covers transport-like
|
||
# failures by default and can overstate HTTP 5xx resilience.
|
||
curl -fsSL https://ccs.kaitran.ca/docker-compose.yaml -o /tmp/ccs-compose.yaml
|
||
echo "--- downloaded compose ---"
|
||
cat /tmp/ccs-compose.yaml
|
||
|
||
- name: Validate compose parses (docker compose config)
|
||
run: docker compose -f /tmp/ccs-compose.yaml config
|
||
|
||
- name: Run network-contract test against downloaded compose
|
||
if: ${{ github.event_name == 'workflow_dispatch' && inputs.do_up == true }}
|
||
run: |
|
||
set -euo pipefail
|
||
# network-contract.sh accepts the compose file as first argument.
|
||
# This exercises the exact file served at the canonical URL rather
|
||
# than the repo copy, ensuring URL-delivered compose works end-to-end.
|
||
# The script handles up, healthcheck wait, sibling DNS probes, and
|
||
# teardown (via EXIT trap) — no separate up/down steps needed.
|
||
bash tests/docker/network-contract.sh /tmp/ccs-compose.yaml
|