Skip to content

feat(session): stage legacy workflow cutover #124

feat(session): stage legacy workflow cutover

feat(session): stage legacy workflow cutover #124

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
backend:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16-alpine
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U postgres -d postgres"
--health-interval 5s
--health-timeout 5s
--health-retries 10
env:
AE_TEST_POSTGRES_DSN: postgres://postgres:postgres@127.0.0.1:5432/postgres?sslmode=disable
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version-file: backend/go.mod
check-latest: false
cache-dependency-path: backend/go.sum
- name: Test backend
working-directory: backend
run: go test ./...
ae-cli:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version-file: ae-cli/go.mod
check-latest: false
cache-dependency-path: ae-cli/go.sum
- name: Test ae-cli
working-directory: ae-cli
run: go test ./...
frontend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: frontend/package-lock.json
- name: Install frontend dependencies
working-directory: frontend
run: npm ci
- name: Test frontend
working-directory: frontend
run: npm test
- name: Build frontend
working-directory: frontend
run: npm run build
deploy-static:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Validate deploy shell script
run: bash -n deploy/docker-deploy.sh
- name: Validate compose configs
run: |
validate_compose() {
local compose_file="$1"
if docker compose --env-file deploy/.env.example -f "$compose_file" config >/dev/null 2>&1; then
echo "validated with docker compose: $compose_file"
return 0
fi
if command -v docker-compose >/dev/null 2>&1; then
docker-compose --env-file deploy/.env.example -f "$compose_file" config >/dev/null
echo "validated with docker-compose: $compose_file"
return 0
fi
echo "no compatible compose implementation available" >&2
exit 1
}
validate_compose deploy/docker-compose.yml
validate_compose deploy/docker-compose.external.yml
- name: Test docker bootstrap script
run: bash deploy/test/docker-deploy-bootstrap-test.sh