name: CI on: push: branches: - main - master tags: - "v*" pull_request: branches: - main - master workflow_dispatch: jobs: check: runs-on: ubuntu-latest steps: - name: Check out repository code uses: actions/checkout@v4 with: repository: ${{ gitea.repository }} token: ${{ gitea.token }} fetch-depth: 50 - name: Typecheck, lint, and test run: | set -e echo "--- CI checks starten via HTTPS ---" node scripts/check-node-toolchain.mjs export SKIP_ENV_VALIDATION=1 export NODE_ENV=test # OPLOSSING: We wijzen naar de MySQL en Redis van de host machine via de Docker gateway export DATABASE_URL="mysql://test:test@172.17.0.1:3306/test?charset=utf8mb4" export REDIS_URL="redis://172.17.0.1:6379?connect_timeout=2" export AUTH_SECRET="ci-test-secret-key-that-is-long-enough" export BCRYPT_ROUNDS=4 pnpm install --frozen-lockfile pnpm biome:lint pnpm typecheck pnpm test pnpm knip echo "--- CI checks passed ---" deploy: needs: check if: gitea.event_name == 'push' && (gitea.ref_name == 'main' || gitea.ref_name == 'master') runs-on: ubuntu-latest steps: - name: Check out repository code for deploy uses: actions/checkout@v4 with: repository: ${{ gitea.repository }} token: ${{ gitea.token }} - name: Build and Deploy Container run: | set -e echo "--- Start Docker Build & Deploy ---" docker build -t epicnext-cms:latest . docker stop epicnext-cms-app 2>/dev/null || true docker rm epicnext-cms-app 2>/dev/null || true docker run -d \ --name epicnext-cms-app \ --restart always \ --net=host \ epicnext-cms:latest docker image prune -f echo "--- Deployment succesvol afgerond! ---"