fix(deps): update all non-major dependencies #7426
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: CI | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
types: [opened, edited, synchronize, reopened] | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: [frontend, backend, backend-admin] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-pnpm | |
- name: Generate Prisma Client | |
if: ${{ matrix.target == 'backend' || matrix.target == 'backend-admin' }} | |
run: pnpm --filter="@codedang/backend" exec prisma generate | |
- name: Setup Next.js build cache | |
if: ${{ matrix.target == 'frontend' }} | |
uses: actions/cache@v4 | |
with: | |
path: apps/frontend/.next/cache | |
key: ${{ runner.os }}-nextjs-${{ hashFiles('pnpm-lock.yaml') }}-${{ hashFiles('**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx') }} | |
restore-keys: | | |
${{ runner.os }}-nextjs-${{ hashFiles('pnpm-lock.yaml') }}- | |
- name: Load Next.js environment | |
if: ${{ matrix.target == 'frontend' }} | |
run: | | |
echo "NEXT_PUBLIC_BASEURL=https://stage.codedang.com/api" >> apps/frontend/.env | |
echo "NEXT_PUBLIC_GQL_BASEURL=https://stage.codedang.com/graphql" >> apps/frontend/.env | |
echo "NEXT_URL=https://stage.codedang.com" >> apps/frontend/.env | |
- name: Build (backend admin) | |
if: ${{ matrix.target == 'backend-admin' }} | |
run: pnpm --filter="@codedang/backend" build admin | |
- name: Build | |
if: ${{ matrix.target != 'backend-admin' }} | |
run: pnpm --filter="apps/${{ matrix.target }}" build | |
typecheck: | |
name: Typecheck | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-pnpm | |
- name: Generate Prisma Client | |
run: pnpm --filter="@codedang/backend" exec prisma generate | |
- name: Check types (backend) # For spec files | |
run: pnpm --filter="@codedang/backend" exec tsc --noEmit | |
# Typecheck is not performed for frontend intentionally. | |
# Check: https://github.com/vercel/next.js/issues/53959 | |
# Unlike backend, we don't have spec file to check types. | |
# So typechecking performed in the build step is enough. | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-pnpm | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: apps/iris/go.mod | |
cache-dependency-path: apps/iris/go.sum | |
- name: Lint pull request title | |
if: ${{ github.event_name == 'pull_request' }} | |
run: echo "${{ github.event.pull_request.title }}" | pnpm commitlint --verbose | |
- name: Check style (Node.js) | |
run: pnpm format:check | |
- name: Check Style (Go) | |
run: | | |
if [ -n "$(gofmt -l .)" ]; then | |
echo "Go files must be formatted with gofmt. Please run:" | |
echo " go fmt ./..." | |
exit 1 | |
fi | |
working-directory: ./apps/iris | |
- name: Lint (Node.js) | |
run: pnpm lint | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
env: | |
DATABASE_URL: postgresql://postgres:1234@localhost:5432/skkuding?schema=public | |
TEST_DATABASE_URL: postgresql://postgres:1234@localhost:5432/skkuding?schema=public | |
services: | |
postgres: | |
image: postgres:16-alpine | |
ports: | |
- 5432:5432 | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: 1234 | |
POSTGRES_DB: skkuding | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-pnpm | |
- name: Check Prisma Migration | |
run: | | |
pnpm --filter="@codedang/backend" exec prisma migrate diff \ | |
--from-migrations ./prisma/migrations \ | |
--to-schema-datamodel ./prisma/schema.prisma \ | |
--shadow-database-url ${{ env.DATABASE_URL }} \ | |
--exit-code || | |
(echo "::error::Prisma migration is not up to date." \ | |
"Please run 'pnpm prisma migrate dev' locally and commit the changes." && exit 1) | |
- name: Migrate Prisma | |
run: pnpm --filter="@codedang/backend" exec prisma migrate reset --force | |
- name: Test | |
run: pnpm -r test |