Skip to content

CI

CI #1167

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
schedule:
- cron: '0 9 * * 0'
jobs:
prettier:
name: Prettier
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v1
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Prettier
run: bun --bun run format:check
eslint:
name: ESLint
runs-on: ubuntu-latest
needs:
- prettier
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v1
- name: Install dependencies
run: bun install --frozen-lockfile
- name: ESLint
run: bun --bun run lint:eslint
svelte-check:
name: Svelte Check
runs-on: ubuntu-latest
needs:
- prettier
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v1
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Svelte Check
run: bun --bun run check:ci
test:
name: Test
runs-on: ubuntu-latest
needs:
- prettier
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v1
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Test
run: bun test
build:
name: Build
runs-on: ubuntu-latest
needs:
- eslint
- svelte-check
- test
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v1
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Build
run: bun --bun run build:ci
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build
path: .svelte-kit/cloudflare
codeql:
name: CodeQL Analysis
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: ['javascript']
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
deploy:
name: Deploy to Cloudflare Pages
runs-on: ubuntu-latest
needs:
- build
- codeql
timeout-minutes: 5
permissions:
contents: read
pages: write
id-token: write
environment:
name: Cloudflare Pages
url: ${{ steps.deployment.outputs.url}}
steps:
- name: Download build artifact
uses: actions/download-artifact@v3
with:
name: build
path: .svelte-kit/cloudflare
- name: Publish to Cloudflare Pages
id: deployment
uses: cloudflare/pages-action@v1
with:
apiToken: ${{ secrets.CLOUDFLARE_DEPLOYMENT_KEY }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: portfolio
directory: .svelte-kit/cloudflare
branch: ${{ github.ref_name}}
# Optional: Enable this if you want to have GitHub Deployments triggered
gitHubToken: ${{ github.token }}