Skip to content

Revert: footer is just 'atelier-api' #6

Revert: footer is just 'atelier-api'

Revert: footer is just 'atelier-api' #6

Workflow file for this run

# PR/push gate: typecheck + the full E2E smoke suite (auth, CAS uploads, packs,
# locks, WebSocket collab, server builds, registry) against a live server with
# dev fake auth and a throwaway Mongo. The Docker image is only BUILT as a
# Dockerfile gate — it is never pushed to any registry (deployment builds the
# image on the target host; the API runs nowhere on GitHub).
name: CI
on:
push:
branches: [master]
tags: ["v*"]
pull_request:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
services:
mongo:
image: mongo:7
ports:
- 27017:27017
env:
MONGODB_URI: mongodb://127.0.0.1:27017
MONGODB_DB_NAME: feelgoodrp_ci
ATELIER_JWT_SECRET: ci-only-jwt-secret-0123456789abcdef-not-production
ATELIER_SERVICE_TOKEN: ci-only-service-token
ATELIER_DEV_FAKE_AUTH: "1"
ATELIER_DEV_FAKE_DISCORD_ID: "900000000000000000"
ATELIER_ADMIN_DISCORD_IDS: "900000000000000000"
ATELIER_STORAGE_ROOT: ./data
steps:
- uses: actions/checkout@v6
- uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Typecheck
run: bun run lint
- name: Start API (dev fake auth)
run: |
bun run start &
for i in $(seq 1 30); do
if curl -fsS http://127.0.0.1:3095/health > /dev/null; then exit 0; fi
sleep 1
done
echo "API did not become healthy within 30s" >&2
exit 1
- name: Smoke suite
run: bun run smoke
- name: Sync round-trip
run: bun run sync-roundtrip
docker:
runs-on: ubuntu-latest
needs: test
permissions:
contents: read
steps:
- uses: actions/checkout@v6
- uses: docker/setup-buildx-action@v4
- name: Build image (validation only, no push)
uses: docker/build-push-action@v7
with:
context: .
push: false
tags: atelier-api:ci
cache-from: type=gha
cache-to: type=gha,mode=max