146 lines
3.2 KiB
YAML
146 lines
3.2 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main, develop]
|
|
pull_request:
|
|
branches: [main, develop]
|
|
|
|
jobs:
|
|
install-dependencies:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '22.x'
|
|
|
|
- name: Install bun
|
|
uses: oven-sh/setup-bun@v2
|
|
with:
|
|
bun-version: 1.3.4
|
|
|
|
- name: Install dependencies
|
|
run: bun ci
|
|
|
|
- name: Upload node_modules artifact
|
|
uses: https://gitea.com/actions/gitea-upload-artifact@v4
|
|
with:
|
|
name: node_modules
|
|
path: node_modules/
|
|
retention-days: 1
|
|
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
needs: install-dependencies
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install bun
|
|
uses: oven-sh/setup-bun@v2
|
|
with:
|
|
bun-version: 1.3.4
|
|
|
|
- name: Install node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '22.x'
|
|
|
|
- name: Download node_modules artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: node_modules
|
|
path: node_modules
|
|
|
|
- name: Build app
|
|
run: bun --bun run build
|
|
|
|
- name: Upload build artifacts
|
|
uses: https://github.com/christopherHX/gitea-upload-artifact@v4
|
|
with:
|
|
name: build-output
|
|
path: build/
|
|
retention-days: 7
|
|
|
|
type-check:
|
|
runs-on: ubuntu-latest
|
|
needs: install-dependencies
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install bun
|
|
uses: oven-sh/setup-bun@v2
|
|
with:
|
|
bun-version: 1.3.4
|
|
|
|
- name: Install node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '22.x'
|
|
|
|
- name: Download node_modules artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: node_modules
|
|
path: node_modules
|
|
|
|
- name: Run type checking
|
|
run: bun --bun run check
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
needs: install-dependencies
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install bun
|
|
uses: oven-sh/setup-bun@v2
|
|
with:
|
|
bun-version: 1.3.4
|
|
|
|
- name: Install node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '22.x'
|
|
|
|
- name: Download node_modules artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: node_modules
|
|
path: node_modules
|
|
|
|
- name: Run linting
|
|
run: bun --bun run lint:check
|
|
|
|
format-check:
|
|
runs-on: ubuntu-latest
|
|
needs: install-dependencies
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install bun
|
|
uses: oven-sh/setup-bun@v2
|
|
with:
|
|
bun-version: 1.3.4
|
|
|
|
- name: Install node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '22.x'
|
|
|
|
- name: Download node_modules artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: node_modules
|
|
path: node_modules
|
|
|
|
- name: Check formatting
|
|
run: bun --bun run format:check
|