feat(app): seo #9
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: Quality Check, Build & Release | |
on: | |
push: | |
branches: | |
- '**' | |
permissions: | |
checks: write | |
contents: write | |
jobs: | |
setup: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 21 | |
check-latest: true | |
- name: Set up Bun | |
uses: oven-sh/setup-bun@v1 | |
with: | |
bun-version: latest | |
- name: Cache Bun Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ~/.bun | |
key: ${{ runner.os }}-bun-${{ hashFiles('bun.lockb') }} | |
restore-keys: | | |
${{ runner.os }}-bun- | |
- name: Install Dependencies | |
run: bun install --ci | |
quality: | |
runs-on: ubuntu-latest | |
needs: [setup] | |
steps: | |
- name: Quality | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 21 | |
check-latest: true | |
- name: Set up Bun | |
uses: oven-sh/setup-bun@v1 | |
with: | |
bun-version: latest | |
- name: Cache Bun Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ~/.bun | |
key: ${{ runner.os }}-bun-${{ hashFiles('bun.lockb') }} | |
restore-keys: | | |
${{ runner.os }}-bun- | |
- name: Install Dependencies | |
run: bun install --ci | |
- name: Run Biome | |
uses: biomejs/setup-biome@v2 | |
with: | |
version: latest | |
- name: Run Linting | |
run: biome ci . | |
build: | |
runs-on: ubuntu-latest | |
needs: [quality] | |
steps: | |
- name: Build | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 21 | |
check-latest: true | |
- name: Set up Bun | |
uses: oven-sh/setup-bun@v1 | |
with: | |
bun-version: latest | |
- name: Cache Bun Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ~/.bun | |
key: ${{ runner.os }}-bun-${{ hashFiles('bun.lockb') }} | |
restore-keys: | | |
${{ runner.os }}-bun- | |
- name: Install Dependencies | |
run: bun install --ci | |
- name: Build Project | |
run: bun run build | |
release: | |
runs-on: ubuntu-latest | |
needs: [build] | |
if: github.ref == 'refs/heads/main' | |
steps: | |
- name: Release | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 21 | |
check-latest: true | |
- name: Set up Bun | |
uses: oven-sh/setup-bun@v1 | |
with: | |
bun-version: latest | |
- name: Cache Bun Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ~/.bun | |
key: ${{ runner.os }}-bun-${{ hashFiles('bun.lockb') }} | |
restore-keys: | | |
${{ runner.os }}-bun- | |
- name: Install Dependencies | |
run: bun install --ci | |
- name: Run Semantic Release | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
run: bunx semantic-release |