From cc08a66e7490e674df08f2b31adcc5e240eb201c Mon Sep 17 00:00:00 2001 From: satyakwok Date: Thu, 7 May 2026 14:22:28 +0200 Subject: [PATCH] ci: add CI + owner auto-merge + dependabot config CI workflow: lint + typecheck + build via turbo (handles all 8 apps + 1 shared package in one pass thanks to turbo caching). Owner auto-merge: mirrors sentrix-labs/sentrix pattern. Auto-enables GitHub native auto-merge on owner PRs (satyakwok); merges fire when required status checks pass per branch protection ruleset. Dependabot: weekly npm updates grouped (next, tooling, web3) + monthly actions updates. Closes the production-monorepo-with-no-CI gap surfaced 2026-05-07. Apps: faucet, scan, coinblast, dex, solux, airdrop, chain-landing, landing. Operator next steps post-merge: configure branch protection ruleset on main with required status checks: 'lint + typecheck + build (turbo)'. --- .github/dependabot.yml | 32 ++++++++++++++++++ .github/workflows/ci.yml | 45 ++++++++++++++++++++++++++ .github/workflows/owner-auto-merge.yml | 27 ++++++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/owner-auto-merge.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..56c70a2 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,32 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + open-pull-requests-limit: 5 + groups: + next: + patterns: + - "next" + - "@next/*" + - "react" + - "react-dom" + tooling: + patterns: + - "typescript" + - "@types/*" + - "eslint*" + - "@typescript-eslint/*" + - "turbo" + web3: + patterns: + - "viem" + - "wagmi" + - "@privy-io/*" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..213d212 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,45 @@ +name: CI + +on: + pull_request: + branches: [main] + push: + branches: [main] + +permissions: + contents: read + +jobs: + build: + name: lint + typecheck + build (turbo) + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v5 + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 10.33.0 + run_install: false + + - name: Setup Node 20 + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'pnpm' + + - name: Install deps + run: pnpm install --frozen-lockfile + + - name: Turbo lint + run: pnpm turbo lint --concurrency=4 + + - name: Turbo typecheck + run: pnpm turbo typecheck --concurrency=4 + + - name: Turbo build + run: pnpm turbo build --concurrency=4 + env: + # Builds may need RPC URL for static generation; default to public mainnet RPC. + NEXT_PUBLIC_SENTRIX_RPC_URL: https://rpc.sentrixchain.com + NEXT_PUBLIC_SENTRIX_TESTNET_RPC_URL: https://testnet-rpc.sentrixchain.com diff --git a/.github/workflows/owner-auto-merge.yml b/.github/workflows/owner-auto-merge.yml new file mode 100644 index 0000000..fe274ba --- /dev/null +++ b/.github/workflows/owner-auto-merge.yml @@ -0,0 +1,27 @@ +name: Owner auto-merge + +on: + pull_request_target: + types: [opened, reopened, synchronize, ready_for_review] + +permissions: + pull-requests: write + contents: write + +jobs: + enable-auto-merge: + runs-on: ubuntu-22.04 + if: > + github.event.pull_request.user.login == 'satyakwok' && + github.event.pull_request.draft == false + steps: + - name: Enable auto-merge (squash) for owner PR + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PR_URL: ${{ github.event.pull_request.html_url }} + run: | + set -e + gh pr merge --auto --squash "$PR_URL" || { + echo "::warning::auto-merge enable returned non-zero — PR may already be merged, conflicted, or have auto-merge already enabled." + exit 0 + }