141 lines
3.2 KiB
YAML
141 lines
3.2 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main, develop]
|
|
pull_request:
|
|
branches: [main, develop]
|
|
|
|
jobs:
|
|
build-and-test:
|
|
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: Build app
|
|
run: bun --bun run build
|
|
|
|
- name: Run type checking
|
|
run: bun --bun run check
|
|
|
|
- name: Run linting
|
|
run: bun --bun run lint:check
|
|
|
|
- name: Check formatting
|
|
run: bun --bun run format:check
|
|
|
|
build-docker-image:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Log in to registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ${{ GITEA_DOMAIN }}
|
|
username: ${{ REGISTRY_USERNAME }}
|
|
password: ${{ REGISTRY_ACCESS_TOKEN }}
|
|
|
|
- name: Build and push image
|
|
uses: docker/build-push-action@v6
|
|
with:
|
|
push: true
|
|
tags: ${{ env.GITEA_DOMAIN }}/${{ env.RESULT_IMAGE_NAME }}:${{ gitea.ref }}
|
|
|
|
# type-check:
|
|
# runs-on: ubuntu-latest
|
|
# container:
|
|
# image: oven/bun:alpine
|
|
# needs: install-dependencies
|
|
# steps:
|
|
# - name: Checkout code
|
|
# uses: actions/checkout@v4
|
|
|
|
# - name: Download node_modules artifact
|
|
# uses: actions/download-artifact@v3
|
|
# with:
|
|
# name: node_modules
|
|
# path: node_modules
|
|
|
|
# - name: Run type checking
|
|
# run: bun run check
|
|
|
|
# lint:
|
|
# runs-on: ubuntu-latest
|
|
# container:
|
|
# image: oven/bun:alpine
|
|
# needs: install-dependencies
|
|
# steps:
|
|
# - name: Checkout code
|
|
# uses: actions/checkout@v4
|
|
|
|
# - name: Download node_modules artifact
|
|
# uses: actions/download-artifact@v3
|
|
# with:
|
|
# name: node_modules
|
|
# path: node_modules
|
|
|
|
# - name: Run linting
|
|
# run: bun run lint:check
|
|
|
|
# format-check:
|
|
# runs-on: ubuntu-latest
|
|
# container:
|
|
# image: oven/bun:alpine
|
|
# needs: install-dependencies
|
|
# steps:
|
|
# - name: Checkout code
|
|
# uses: actions/checkout@v4
|
|
|
|
# - name: Download node_modules artifact
|
|
# uses: actions/download-artifact@v3
|
|
# with:
|
|
# name: node_modules
|
|
# path: node_modules
|
|
|
|
# - name: Check formatting
|
|
# run: bun run format:check
|
|
|
|
# build:
|
|
# runs-on: ubuntu-latest
|
|
# container:
|
|
# image: oven/bun:alpine
|
|
# needs: install-dependencies
|
|
# steps:
|
|
# - name: Checkout code
|
|
# uses: actions/checkout@v4
|
|
|
|
# - name: Download node_modules artifact
|
|
# uses: actions/download-artifact@v3
|
|
# with:
|
|
# name: node_modules
|
|
# path: node_modules
|
|
|
|
# - name: Build application
|
|
# run: bun run build
|
|
|
|
# - name: Upload build artifacts
|
|
# uses: actions/upload-artifact@v4
|
|
# with:
|
|
# name: build-output
|
|
# path: build/
|
|
# retention-days: 7
|