Files
e-tib.com/.gitea/workflows/qa.yml
Marc Mintel c627f1d724
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 41s
Build & Deploy / 🧪 QA (push) Failing after 1m1s
Build & Deploy / 🏗️ Build (push) Has been skipped
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s
chore: implement robust registry authentication via functional discovery
2026-05-12 11:02:18 +02:00

60 lines
2.0 KiB
YAML

name: Nightly QA
on:
schedule:
- cron: '0 3 * * *'
workflow_dispatch:
env:
TARGET_URL: 'https://testing.e-tib.com'
PROJECT_NAME: 'etib-website'
jobs:
smoke:
name: 💨 Smoke & Health
runs-on: docker
container:
image: catthehacker/ubuntu:act-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version: 20
- name: 📦 Cache node_modules
uses: actions/cache@v4
id: cache-deps
with:
path: node_modules
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: 🔐 Registry Auth
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
GITEA_PAT: ${{ secrets.GITEA_PAT }}
MINTEL_PRIVATE_TOKEN: ${{ secrets.MINTEL_PRIVATE_TOKEN }}
run: bash scripts/registry-auth.sh
- name: Install
if: steps.cache-deps.outputs.cache-hit != 'true'
run: pnpm install --no-frozen-lockfile
- name: 🌐 Install Chrome & Dependencies
run: |
apt-get update && apt-get install -y libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxrandr2 libgbm1 libasound2t64 libpango-1.0-0 libcairo2
npx puppeteer browsers install chrome
- name: 🚀 Run Smoke Test
env:
NEXT_PUBLIC_BASE_URL: ${{ env.TARGET_URL }}
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD }}
PUPPETEER_EXECUTABLE_PATH: /usr/bin/chromium
run: npx tsx scripts/smoke.ts
- name: 🔔 Notify
if: always()
run: |
STATUS="${{ job.status }}"
TITLE="💨 ${{ env.PROJECT_NAME }} Nightly Smoke $STATUS"
curl -s -k -X POST "${{ secrets.GOTIFY_URL }}/message?token=${{ secrets.GOTIFY_TOKEN }}" \
-F "title=$TITLE" \
-F "message=Status: $STATUS | URL: ${{ env.TARGET_URL }}" \
-F "priority=5" || true