diff --git a/.github/actions/start-app/action.yml b/.github/actions/start-app/action.yml index ea4c0a10..c5c2312d 100644 --- a/.github/actions/start-app/action.yml +++ b/.github/actions/start-app/action.yml @@ -22,6 +22,11 @@ runs: uses: actions/setup-node@v6 with: node-version: '20' + cache: 'npm' + cache-dependency-path: | + package-lock.json + backend/package-lock.json + frontend/package-lock.json - name: Install root dependencies (Playwright) shell: bash diff --git a/.github/dependabot.yml b/.github/dependabot.yml index b97796c5..ed8d43c3 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -7,6 +7,9 @@ updates: labels: - "dependencies" open-pull-requests-limit: 10 + groups: + all-npm-root: + patterns: ["*"] - package-ecosystem: "npm" directory: "/backend" @@ -15,6 +18,9 @@ updates: labels: - "dependencies" open-pull-requests-limit: 10 + groups: + all-npm-backend: + patterns: ["*"] - package-ecosystem: "npm" directory: "/frontend" @@ -23,6 +29,9 @@ updates: labels: - "dependencies" open-pull-requests-limit: 10 + groups: + all-npm-frontend: + patterns: ["*"] - package-ecosystem: "github-actions" directory: "/" @@ -30,3 +39,6 @@ updates: interval: "weekly" labels: - "ci" + groups: + all-actions: + patterns: ["*"] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 434c8fa2..140891bb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,12 +18,16 @@ concurrency: cancel-in-progress: true # --------------------------------------------------------------------------- -# Build & Validation (runs on PRs and push to main) +# Build & Validation (PRs only, skipped for release-please PRs) # --------------------------------------------------------------------------- jobs: backend: name: Backend (Build, Test, Lint) runs-on: ubuntu-latest + timeout-minutes: 10 + if: >- + github.event_name == 'pull_request' + && github.head_ref != 'release-please--branches--main--components--sencho' steps: - name: Checkout Code uses: actions/checkout@v6 @@ -58,6 +62,10 @@ jobs: frontend: name: Frontend (Build, Lint) runs-on: ubuntu-latest + timeout-minutes: 10 + if: >- + github.event_name == 'pull_request' + && github.head_ref != 'release-please--branches--main--components--sencho' steps: - name: Checkout Code uses: actions/checkout@v6 @@ -88,6 +96,10 @@ jobs: docker-validate: name: Docker Build & Scan runs-on: ubuntu-latest + timeout-minutes: 15 + if: >- + github.event_name == 'pull_request' + && github.head_ref != 'release-please--branches--main--components--sencho' steps: - name: Checkout Code uses: actions/checkout@v6 @@ -117,12 +129,16 @@ jobs: continue-on-error: true # --------------------------------------------------------------------------- - # E2E Tests (runs on PRs and push to main) + # E2E Tests (PRs only, skipped for release-please PRs) # --------------------------------------------------------------------------- e2e: name: E2E Tests (Playwright) runs-on: ubuntu-latest + timeout-minutes: 15 needs: [backend, frontend] + if: >- + github.event_name == 'pull_request' + && github.head_ref != 'release-please--branches--main--components--sencho' steps: - name: Checkout Code uses: actions/checkout@v6 @@ -154,11 +170,11 @@ jobs: update-screenshots: name: Refresh Doc Screenshots runs-on: ubuntu-latest + timeout-minutes: 15 if: >- github.event_name == 'push' && github.ref == 'refs/heads/main' && startsWith(github.event.head_commit.message, 'chore(main): release') - needs: [backend, frontend] permissions: contents: write pull-requests: write @@ -201,6 +217,7 @@ jobs: sync-docs: name: Sync Docs to sencho-docs runs-on: ubuntu-latest + timeout-minutes: 5 if: github.event_name == 'push' && github.ref == 'refs/heads/main' steps: - name: Checkout Sencho repo diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index b6c4d923..5821ee5f 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -6,10 +6,15 @@ on: - 'v*' workflow_dispatch: +concurrency: + group: docker-publish + cancel-in-progress: true + jobs: push_to_registry: name: Push Docker image to Docker Hub runs-on: ubuntu-latest + timeout-minutes: 30 steps: - name: Check out the repo uses: actions/checkout@v6 diff --git a/.gitignore b/.gitignore index ba9c1018..7cdf166b 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ node_modules/ # Build Outputs dist/ +*.tsbuildinfo # Sencho User Data & Mocks data/