photos/.forgejo/workflows/deploy.yml
Andras Schmelczer f94e3f3161
Some checks failed
renovate/artifacts Artifact file update failure
Check & deploy / validate (pull_request) Failing after 21s
Check & deploy / deploy (pull_request) Has been skipped
Update all dependencies
2026-10-29 00:21:59 +00:00

77 lines
1.7 KiB
YAML

name: Check & deploy
on:
push:
branches: ['main']
pull_request:
branches: ['main']
workflow_dispatch:
permissions:
contents: read
jobs:
validate:
runs-on: docker
# Superseded validation runs can be cancelled freely.
concurrency:
group: 'photos-validate-${{ github.ref }}'
cancel-in-progress: true
steps:
- uses: actions/checkout@v7
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version-file: '.nvmrc'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Lint and static checks
run: npm run lint:check
- name: Unit tests
run: npm test
- name: Build
run: npm run build
- name: Install Playwright browser
run: npx playwright install --with-deps chromium
- name: End-to-end smoke test
run: npm run test:e2e
deploy:
runs-on: docker
needs: validate
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
# Never cancel an in-flight deploy: rsync --delete must finish or the live
# site can be left half-deleted. Newer deploys queue behind this one.
concurrency:
group: 'photos-deploy-${{ github.ref }}'
cancel-in-progress: false
steps:
- uses: actions/checkout@v7
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version-file: '.nvmrc'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Copy build to host pages mount
uses: http://forgejo:3000/andras/ci-actions/deploy-pages@main
with:
source: dist
target: photos