Update documentation for the flarekit #19
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy to Cloudflare Infrastructure | |
on: | |
push: | |
branches: ['main'] | |
pull_request: | |
branches: ['main'] | |
jobs: | |
lint: | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Use Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
- name: Cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: | | |
**/node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies | |
run: npm install | |
- name: Lint | |
run: npm run lint | |
test: | |
runs-on: ubuntu-24.04 | |
# No 'needs:' here, so it can run in parallel with 'lint' | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Use Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
- name: Cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: | | |
**/node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies | |
run: npm install | |
- name: Test all packages | |
run: npm test | |
- name: Run E2E Testing | |
run: npx playwright install && npx playwright install-deps && npm run test:e2e | |
build: | |
runs-on: ubuntu-24.04 | |
needs: [lint, 'test'] | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Use Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
- name: Cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: | | |
**/node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies | |
run: npm install | |
- name: Build all applications | |
run: npm run build | |
- name: Archive web artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: web-dist | |
path: ./apps/web/dist | |
# Or archive multiple if you have more apps | |
migrate: | |
runs-on: ubuntu-24.04 | |
needs: [build] | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Use Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
- name: Cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: | | |
**/node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies | |
run: npm install | |
- name: Run migrations on production | |
run: npx flarekit migrate:d1:production | |
env: | |
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
deploy_web: | |
runs-on: ubuntu-24.04 | |
needs: [migrate] | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Use Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
- name: Cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: | | |
**/node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies | |
run: npm install | |
- name: Setup Wrangler | |
run: npm run setup | |
- name: Download build artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: web-dist | |
path: './apps/web/dist' | |
- name: Deploy to @flarekit/web | |
uses: cloudflare/wrangler-action@v3 | |
with: | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
workingDirectory: ./apps/web | |
command: pages deploy ./dist | |
deploy_backend: | |
runs-on: ubuntu-24.04 | |
needs: [migrate] | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Use Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
- name: Cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: | | |
**/node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies | |
run: npm install | |
- name: Setup Wrangler | |
run: npm run setup | |
- name: Build Database | |
run: npx flarekit build --filter="@flarekit/database" | |
- name: Deploy to @flarekit/backend | |
uses: cloudflare/wrangler-action@v3 | |
with: | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
workingDirectory: ./apps/backend | |
command: deploy |