name: CI/CD Pipeline on: push: branches: [main, production] pull_request: branches: [main, production] env: REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository }} jobs: # Test Job (parallel) test: name: Run Tests runs-on: self-hosted # Use your own server for speed! steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Cache dependencies uses: actions/cache@v4 with: path: | ~/.npm node_modules key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install dependencies run: npm ci - name: Create test environment file run: | cat > .env < .env <