misskey/.github/workflows/test-backend.yml
あわわわとーにゅ 84a0568f88
update deps (MisskeyIO#993)
2025-05-13 06:34:39 +09:00

140 lines
3.7 KiB
YAML

name: Test (backend)
on:
push:
branches:
- main
- beta
- host
paths:
- packages/backend/**
# for permissions
- packages/misskey-js/**
pull_request:
paths:
- packages/backend/**
# for permissions
- packages/misskey-js/**
jobs:
unit:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.x]
services:
postgres:
image: postgres:15
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
dragonfly:
image: docker.dragonflydb.io/dragonflydb/dragonfly
options: --ulimit "memlock=-1"
env:
DFLY_version_check: false
DFLY_default_lua_flags: allow-undeclared-keys
ports:
- 56312:6379
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Restore FFmpeg binary cache
uses: actions/cache/restore@v4
with:
path: /opt/hostedtoolcache/ffmpeg
key: ffmpeg-${{ runner.os }}-${{ runner.arch }}-latest
restore-keys: |
ffmpeg-${{ runner.os }}-${{ runner.arch }}-
- name: Install FFmpeg
uses: FedericoCarboni/setup-ffmpeg@v3
id: setup-ffmpeg
- name: Save FFmpeg binary cache
if: steps.setup-ffmpeg.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
path: /opt/hostedtoolcache/ffmpeg
key: ffmpeg-${{ runner.os }}-${{ runner.arch }}-${{ steps.setup-ffmpeg.outputs.ffmpeg-version }}
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.4.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Copy Configure
run: cp .github/misskey/test.yml .config
- name: Build
run: pnpm build
- name: Test
run: pnpm --filter backend test-and-coverage
- name: Upload to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/coverage/coverage-final.json
e2e:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.x]
services:
postgres:
image: postgres:15
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
dragonfly:
image: docker.dragonflydb.io/dragonflydb/dragonfly
options: --ulimit "memlock=-1"
env:
DFLY_version_check: false
DFLY_default_lua_flags: allow-undeclared-keys
ports:
- 56312:6379
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.4.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Copy Configure
run: cp .github/misskey/test.yml .config
- name: Build
run: pnpm build
- name: Test
run: pnpm --filter backend test-and-coverage:e2e
- name: Upload to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/coverage/coverage-final.json