this repo has no description
1name: Build frontend
2
3on:
4 push:
5 paths:
6 - app/**
7 - package.json
8 - pnpm-lock.yaml
9 - pnpm-workspace.yaml
10 - .github/workflows/frontend.yml
11 pull_request:
12 paths:
13 - app/**
14 - package.json
15 - pnpm-lock.yaml
16 - pnpm-workspace.yaml
17 - .github/workflows/frontend.yml
18 workflow_dispatch:
19
20env:
21 DATABASE_URL: "file:./data.db"
22
23jobs:
24 check:
25 name: Checks
26 runs-on: ubuntu-latest
27
28 steps:
29 - name: Checkout sources
30 uses: actions/checkout@v6
31
32 - name: Install latest version of corepack
33 run: npm i -g --force corepack && corepack enable
34
35 - name: Setup Node.js
36 uses: actions/setup-node@v6
37 with:
38 node-version: 24.x
39 cache: "pnpm"
40
41 - name: Install dependencies
42 run: pnpm --filter app install --frozen-lockfile
43
44 - name: Check types
45 working-directory: app
46 run: pnpm run check
47
48 - name: Check lint
49 working-directory: app
50 run: pnpm run lint:check
51
52 - name: Check formatting
53 working-directory: app
54 run: pnpm run format:check
55
56 migrations:
57 name: Check migrations
58 runs-on: ubuntu-latest
59
60 steps:
61 - name: Checkout sources
62 uses: actions/checkout@v6
63
64 - name: Install latest version of corepack
65 run: npm i -g --force corepack && corepack enable
66
67 - name: Setup Node.js
68 uses: actions/setup-node@v6
69 with:
70 node-version: 24.x
71 cache: "pnpm"
72
73 - name: Install dependencies
74 run: pnpm --filter app install --frozen-lockfile
75
76 - name: Run migrations locally
77 uses: cloudflare/wrangler-action@v3
78 with:
79 apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
80 wranglerVersion: 4.87.0
81 packageManager: pnpm
82 command: d1 migrations apply compiles-at-database --local
83 workingDirectory: app
84
85 deploy:
86 name: Build & deploy
87 runs-on: ubuntu-latest
88 needs: [check, migrations]
89 if: github.ref == 'refs/heads/main'
90 env:
91 BASE_URL: "https://compiles.at"
92
93 steps:
94 - name: Checkout sources
95 uses: actions/checkout@v6
96
97 - name: Install latest version of corepack
98 run: npm i -g --force corepack && corepack enable
99
100 - name: Setup Node.js
101 uses: actions/setup-node@v6
102 with:
103 node-version: 24.x
104 cache: "pnpm"
105
106 - name: Install dependencies
107 run: pnpm --filter app install --frozen-lockfile
108
109 - name: Build app
110 working-directory: app
111 run: pnpm run build
112
113 - name: Migrations
114 uses: cloudflare/wrangler-action@v3
115 with:
116 apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
117 wranglerVersion: 4.87.0
118 packageManager: pnpm
119 command: d1 migrations apply compiles-at-database --remote
120 workingDirectory: app
121
122 - name: Deploy
123 uses: cloudflare/wrangler-action@v3
124 with:
125 apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
126 wranglerVersion: 4.87.0
127 packageManager: pnpm
128 workingDirectory: app
129 secrets: |
130 SESSION_SECRET
131 ENCRYPTION_KEY
132 env:
133 SESSION_SECRET: ${{ secrets.SESSION_SECRET }}
134 ENCRYPTION_KEY: ${{ secrets.ENCRYPTION_KEY }}