name: Test (backend) on: push: branches: - main 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 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_tcp_backlog: 2048 DFLY_default_lua_flags: allow-undeclared-keys DFLY_pipeline_squash: 0 DFLY_multi_exec_squash: false DFLY_conn_io_threads: 4 DFLY_epoll_file_threads: 4 DFLY_proactor_threads: 4 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 submodules: true - name: Install pnpm uses: pnpm/action-setup@v4.0.0 with: run_install: false - name: Install FFmpeg uses: https://github.com/FedericoCarboni/setup-ffmpeg@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4.1.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 .forgejo/misskey/test-forgejo.yml .config/test.yml - name: Build run: pnpm build - name: Test run: pnpm --filter backend test e2e: runs-on: ubuntu-latest strategy: matrix: node-version: [22.x] services: postgres: image: postgres:15 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_tcp_backlog: 2048 DFLY_default_lua_flags: allow-undeclared-keys DFLY_pipeline_squash: 0 DFLY_multi_exec_squash: false DFLY_conn_io_threads: 4 DFLY_epoll_file_threads: 4 DFLY_proactor_threads: 4 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 submodules: true - name: Install pnpm uses: pnpm/action-setup@v4.0.0 with: run_install: false - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4.1.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 .forgejo/misskey/test-forgejo.yml .config/test.yml - name: Build run: pnpm build - name: Test run: pnpm --filter backend test:e2e