Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 93 additions & 9 deletions .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: PR Checks
name: CI

on:
pull_request:
Expand All @@ -7,14 +7,12 @@ permissions:
contents: read

jobs:
checks:
name: Lint, Test, Build, and Type Check
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install pnpm
uses: pnpm/action-setup@v4
Expand All @@ -31,14 +29,100 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Lint
- name: Run lint
run: pnpm lint

- name: Type check
typecheck:
name: Type Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.8.0
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Run type check
run: pnpm typecheck

- name: Test
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.8.0
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build packages
run: pnpm build

- name: Run tests
run: pnpm test

- name: Build
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.8.0
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Run build
run: pnpm build

status-check:
name: PR Checks
runs-on: ubuntu-latest
needs: [lint, typecheck, test, build]
if: always()
steps:
- name: Check all jobs
run: |
if [[ "${{ needs.lint.result }}" != "success" ]] || \
[[ "${{ needs.typecheck.result }}" != "success" ]] || \
[[ "${{ needs.test.result }}" != "success" ]] || \
[[ "${{ needs.build.result }}" != "success" ]]; then
echo "One or more checks failed"
exit 1
fi
echo "All checks passed!"
13 changes: 13 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,16 @@ jobs:
console.error(`Failed to create release for ${tagName}:`, error.message);
}
}

- name: Deploy Documentation to Cloudflare Pages
if: steps.changesets.outputs.published == 'true'
run: |
echo "Building documentation site..."
pnpm --filter @ts-contract/docs build
echo "Installing Wrangler..."
npm install -g wrangler
echo "Deploying to Cloudflare Pages..."
npx wrangler pages deploy apps/docs/out --project-name=ts-contract-docs
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
7 changes: 0 additions & 7 deletions apps/docs/app/api/search/route.ts

This file was deleted.

2 changes: 2 additions & 0 deletions apps/docs/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { RootProvider } from 'fumadocs-ui/provider/next';
import './global.css';
import { Inter } from 'next/font/google';
import { ConstructionBanner } from '@/components/construction-banner';

const inter = Inter({
subsets: ['latin'],
Expand All @@ -10,6 +11,7 @@ export default function Layout({ children }: LayoutProps<'/'>) {
return (
<html lang="en" className={inter.className} suppressHydrationWarning>
<body className="flex flex-col min-h-screen">
<ConstructionBanner />
<RootProvider>{children}</RootProvider>
</body>
</html>
Expand Down
10 changes: 0 additions & 10 deletions apps/docs/app/llms-full.txt/route.ts

This file was deleted.

20 changes: 0 additions & 20 deletions apps/docs/app/llms.mdx/docs/[[...slug]]/route.ts

This file was deleted.

13 changes: 0 additions & 13 deletions apps/docs/app/llms.txt/route.ts

This file was deleted.

16 changes: 16 additions & 0 deletions apps/docs/components/construction-banner.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
export function ConstructionBanner() {
return (
<div className="bg-yellow-50 border-b border-yellow-200 dark:bg-yellow-900/20 dark:border-yellow-800">
<div className="max-w-7xl mx-auto px-4 py-3">
<div className="flex items-center justify-center gap-2 text-sm text-yellow-800 dark:text-yellow-200">
<span className="text-lg" role="img" aria-label="construction">
🚧
</span>
<p className="font-medium">
Under Construction - This documentation is actively being developed
</p>
</div>
</div>
</div>
);
}
7 changes: 7 additions & 0 deletions apps/docs/lib/layout.shared.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,12 @@ export function baseOptions(): BaseLayoutProps {
),
},
githubUrl: `https://github.com/${gitConfig.user}/${gitConfig.repo}`,
links: [
{
text: 'Documentation',
url: '/docs',
active: 'nested-url',
},
],
};
}
11 changes: 4 additions & 7 deletions apps/docs/next.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,11 @@ const withMDX = createMDX();

/** @type {import('next').NextConfig} */
const config = {
output: 'export',
reactStrictMode: true,
async rewrites() {
return [
{
source: '/:path*.mdx',
destination: '/llms.mdx/docs/:path*',
},
];
trailingSlash: true,
images: {
unoptimized: true,
},
};

Expand Down
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
"typecheck": "tsc -b",
"changeset": "changeset",
"version-packages": "changeset version",
"release": "pnpm build && changeset publish"
"release": "pnpm build && changeset publish",
"deploy-docs": "./scripts/deploy-docs.sh"
},
"dependencies": {
"@shikijs/transformers": "^3.22.0",
Expand All @@ -30,6 +31,7 @@
"tslib": "^2.3.0",
"typescript": "~5.9.2",
"typescript-eslint": "^8.40.0",
"vitest": "~4.0.18"
"vitest": "~4.0.18",
"wrangler": "^4.68.1"
}
}
Loading