cherrypick/.github/workflows/test-backend.yml

118 lines
2.8 KiB
YAML
Raw Normal View History

2023-03-07 20:23:44 +09:00
name: Test (backend)
on:
push:
branches:
- master
- develop
paths:
- packages/backend/**
# for permissions
2024-01-10 17:30:21 +09:00
- packages/cherrypick-js/**
2023-03-07 20:23:44 +09:00
pull_request:
paths:
- packages/backend/**
# for permissions
2024-01-10 17:30:21 +09:00
- packages/cherrypick-js/**
2023-03-07 20:23:44 +09:00
jobs:
unit:
2023-03-07 20:23:44 +09:00
runs-on: ubuntu-latest
strategy:
matrix:
2023-11-24 09:20:41 +09:00
node-version: [20.10.0]
2023-03-07 20:23:44 +09:00
services:
postgres:
image: postgres:15
2023-03-07 20:23:44 +09:00
ports:
- 54312:5432
env:
2023-05-28 18:35:56 +09:00
POSTGRES_DB: test-cherrypick
2023-03-07 20:23:44 +09:00
POSTGRES_HOST_AUTH_METHOD: trust
redis:
2023-04-06 10:30:06 +09:00
image: redis:7
2023-03-07 20:23:44 +09:00
ports:
- 56312:6379
steps:
- uses: actions/checkout@v4.1.1
2023-03-07 20:23:44 +09:00
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
2023-04-27 00:17:40 +09:00
version: 8
2023-03-07 20:23:44 +09:00
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.1
2023-03-07 20:23:44 +09:00
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Copy Configure
2023-05-28 18:35:56 +09:00
run: cp .github/cherrypick/test.yml .config
2023-03-07 20:23:44 +09:00
- name: Build
run: pnpm build
- name: Test
run: pnpm --filter backend test-and-coverage
- name: Upload to Codecov
2023-03-07 20:23:44 +09:00
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/coverage/coverage-final.json
e2e:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.10.0]
services:
postgres:
image: postgres:15
ports:
- 54312:5432
env:
2024-01-10 17:30:21 +09:00
POSTGRES_DB: test-cherrypick
POSTGRES_HOST_AUTH_METHOD: trust
redis:
image: redis:7
ports:
- 56312:6379
steps:
- uses: actions/checkout@v4.1.1
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.1
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Copy Configure
2024-01-10 17:30:21 +09:00
run: cp .github/cherrypick/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@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/coverage/coverage-final.json