name: CI/CD on: push: branches: [main] pull_request: branches: [main] jobs: test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 22 - name: Install dependencies run: npm ci - name: Lint run: npm run lint - name: Type check run: npx tsc --noEmit - name: Run tests run: npm test - name: Build run: npm run build deploy: needs: test runs-on: ubuntu-latest if: github.event_name == 'push' && github.ref == 'refs/heads/main' steps: - name: Deploy to Dokploy run: | curl -fsSL -X POST "${{ secrets.DOKPLOY_URL }}/api/application.deploy" \ -H "Content-Type: application/json" \ -H "x-api-key: ${{ secrets.DOKPLOY_API_TOKEN }}" \ -d '{"applicationId": "${{ secrets.DOKPLOY_APP_ID }}"}' echo "Deploy triggered on Dokploy"