84 lines
2.1 KiB
YAML
84 lines
2.1 KiB
YAML
name: F3.1 Inventory CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'feature/f3-1*'
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
api:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 25
|
|
defaults:
|
|
run:
|
|
working-directory: api-v3
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '24'
|
|
cache: npm
|
|
cache-dependency-path: api-v3/package-lock.json
|
|
- run: npm ci
|
|
- name: Typecheck
|
|
run: npm run typecheck 2>&1 | tee typecheck.log
|
|
- name: Tests
|
|
run: npm test 2>&1 | tee test.log
|
|
- name: Build
|
|
run: npm run build 2>&1 | tee build.log
|
|
- name: Diagnostics
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: f3-1-api-diagnostics
|
|
path: |
|
|
api-v3/typecheck.log
|
|
api-v3/test.log
|
|
api-v3/build.log
|
|
if-no-files-found: warn
|
|
retention-days: 3
|
|
|
|
web:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 20
|
|
defaults:
|
|
run:
|
|
working-directory: web-v2
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '24'
|
|
cache: npm
|
|
cache-dependency-path: web-v2/package-lock.json
|
|
- run: npm ci
|
|
- name: Typecheck
|
|
run: npm run typecheck 2>&1 | tee typecheck.log
|
|
- name: Build
|
|
run: npm run build 2>&1 | tee build.log
|
|
- name: Diagnostics
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: f3-1-web-diagnostics
|
|
path: |
|
|
web-v2/typecheck.log
|
|
web-v2/build.log
|
|
if-no-files-found: warn
|
|
retention-days: 3
|
|
|
|
docker:
|
|
needs: [api, web]
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 25
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Validate Compose
|
|
run: docker compose --env-file .env.example config >/dev/null
|
|
- name: Build production images
|
|
run: docker compose --env-file .env.example build api migrate web
|