name: CI on: push: branches: [main] jobs: build-and-start: runs-on: [ubuntu-latest, docker] container: image: node:20-bookworm steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: npm ci - name: Build run: npm run build - name: Verify app starts run: | timeout 20 npm run start:prod || [ $? -eq 124 ] env: PORT: 4000 deploy: needs: build-and-start runs-on: [ubuntu-latest, docker] container: image: node:20-bookworm steps: - name: Install Docker run: apt-get update -qq && apt-get install -y -qq docker.io docker-compose - name: Checkout uses: actions/checkout@v4 - name: Deploy run: docker-compose -p docker-stack up -d --build backend env: DATABASE_URL: ${{ secrets.DATABASE_URL }} UPLOADS_PATH: ${{ secrets.UPLOADS_PATH }}