Sharkey/.github/workflows/test-frontend.yml

135 lines
3.5 KiB
YAML
Raw Normal View History

2023-03-07 13:23:44 +02:00
name: Test (frontend)
2021-10-27 19:16:13 +03:00
on:
push:
branches:
- master
- develop
paths:
- packages/frontend/**
# for permissions
- packages/misskey-js/**
# for e2e
- packages/backend/**
pull_request:
paths:
- packages/frontend/**
# for permissions
- packages/misskey-js/**
# for e2e
- packages/backend/**
Add GitHub Actions (#5522) * add .github/workflows/nodejs.yml * fix * GitHub Actions: Node.js 8.xはサポートしない * add .github/workflows/docker.yml * Dockerビルドをキャッシュするように * Run test in github actions * 同リポジトリ内からのプルリクだと無駄に二回走るのを抑制 * 6925c00のdocker.ymlへの適応忘れ * fix .circleci/misskey/test.yml * test実行時にDBとかredisとか動かすように * fix * fix tests (#5544) * fix test * fix compile errors * PATH引き継ぎでchild_process.spawn時のENOENTを修正 * サーバー起動処理を共通化 * fix coding style * fd=4をipcに使うように * fix port * fix * fix ws port * #4033 にテストケースを追従 * fix? * fix?? * fix * fix * fix * maybe fix * fix * node 10.xサポートしてなかった * 11.10じゃないとだめだった * fix * remove chart test * fix * chart test復活 * fix * 一回一回コネクションを閉じる * Revert "一回一回コネクションを閉じる" This reverts commit 56e35cf4f83070744c8dd852f1a7075011d88828. * 一回一回sync→dropしてるのをやめてみる * fix * fix * … * キャッシュを切ってみる * add ts to require target * omg fix * Revert "キャッシュを切ってみる" This reverts commit 88161c59d2ea769ddf87143ba4fd4660a06afdf2. * done呼び忘れ * 実際の文字数リミットと違ってたので対応 * テストケースがバグってたので修正 * Revert "一回一回sync→dropしてるのをやめてみる" This reverts commit a9e543ba2eef790ac7a14ae8799b898765748e35. * fix * fix * fix * fix? * fix * chartのconnectionを分離する * fix * fix * fix tsconfig? * Revert "fix tsconfig?" This reverts commit ba9269eaf65507ff97ec1dd2e27260fb2cf0510b. * fix * TS_NODE_FILES を scripts の方で指定 * Windowsェ * Circle CIの実行条件をmasterへのpushのみに Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2020-01-09 07:35:04 +02:00
jobs:
vitest:
runs-on: ubuntu-latest
strategy:
matrix:
2023-11-24 02:20:41 +02:00
node-version: [20.10.0]
steps:
- uses: actions/checkout@v4.1.1
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
2023-04-26 18:17:40 +03:00
version: 8
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.2
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
run: cp .github/misskey/test.yml .config
- name: Build
run: pnpm build
- name: Test
run: pnpm --filter frontend test-and-coverage
- name: Upload Coverage
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/frontend/coverage/coverage-final.json
e2e:
runs-on: ubuntu-latest
2021-10-27 19:16:13 +03:00
strategy:
fail-fast: false
2021-10-27 19:16:13 +03:00
matrix:
2023-11-24 02:20:41 +02:00
node-version: [20.10.0]
browser: [chrome]
2021-10-27 19:16:13 +03:00
services:
postgres:
image: postgres:15
2021-10-27 19:16:13 +03:00
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
redis:
2023-04-06 04:30:06 +03:00
image: redis:7
2021-10-27 19:16:13 +03:00
ports:
- 56312:6379
steps:
- uses: actions/checkout@v4.1.1
with:
submodules: true
# https://github.com/cypress-io/cypress-docker-images/issues/150
#- name: Install mplayer for FireFox
# run: sudo apt install mplayer -y
# if: ${{ matrix.browser == 'firefox' }}
#- uses: browser-actions/setup-firefox@latest
# if: ${{ matrix.browser == 'firefox' }}
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 7
run_install: false
2021-10-27 19:16:13 +03:00
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.2
with:
2021-10-27 19:16:13 +03:00
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
refactor: migrate to Yarn Berry (v3.2.1) (#8764) * Yarn berry * Add `.yarn` to dockerignore * Mention in CHANGELOG * Update Dockerfile * Proper upgrade to yarn * use `"packageManager"` * Replace `install-packages.js` with workspaces * Replace `install-packages.js` with workspaces * Typo * `corepack enable` for linting * Remove `packages/*/yarn.lock` * Improve lint workflow * Update .github/workflows/lint.yml Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com> * Update .github/workflows/lint.yml Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com> * Add `eslint` * Regenerate yarn.lock * 🙏‍ * Update lint.yml :thinking: * Fix workflow! * yarn lint my beloved * corepack enable for mocha/e2e * Update CHANGELOG.md * fix the code that depends on node_modules * tbh * tbh * More yarn workspaces stuff * 🍀 * Change `browser-image-resizer` * :finnadie: * :goberserk: * :godmode: * Remove yarnrc for workspaces * 🙏 * Add proper packages for eslint * Skip extra install * New steps for test.yml too * uhh * Update .dockerignore * Update lint.yml * Update test.yml * Make client/backend lints seperate workflows * package.json names * pnpm = dont change paths * Fix changelog * :bowtie: * I don't know why github workflows hates me... * test * ????? * continue-on-error: true * Fix yarn.lock Co-authored-by: ishowta <ishowta@gmail.com> * add @rollup/pluginutils * add packageExtensions for chartjs_date-fns Co-authored-by: acid-chicken <root@acid-chicken.com> * npm run => yarn * wip * yarn node => node 依存関係の記載不足の解消がかなり多いため、yarn nodeは使わない * fix * fix http-signature * fix * fix * add packageExtensions * :v: * remove `yarn set version berry` * yarn install --immutable Co-authored-by: ishowta <ishowta@gmail.com> * https://github.com/misskey-dev/misskey/pull/8764#discussion_r885749892 * enable actions/setup-node's global cache * Update .gitignore Co-authored-by: iwata <ishowta@gmail.com> * revival gulp build https://github.com/misskey-dev/misskey/pull/8764/files/66ab7591bff9b35255219057e33399a06260aa31#r885899944 * fix lockfile * Update packages/backend/package.json Co-authored-by: iwata <ishowta@gmail.com> * remove packagemanager * `yarn run gulp` in `build` instead of just `gulp` * Update CHANGELOG.md * update lockfile * Add .yarn/cache to gitignore for packages * ? * move resolutions * :v: * update lockfie * update-lockfile * update yarn.lock * fix build * fix * fix * fix: add @tensorflow/tfjs * ダメ * modify lockfile * use yarnrc * update yarnlock * add jest-mock * update-lockfile * update lockfile * update lockfile * move jest-mock, update lockfile Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com> Co-authored-by: tamaina <tamaina@hotmail.co.jp> Co-authored-by: ishowta <ishowta@gmail.com>
2022-11-24 08:39:00 +02:00
- run: corepack enable
- run: pnpm i --frozen-lockfile
2021-10-27 19:16:13 +03:00
- name: Copy Configure
2021-11-12 05:43:55 +02:00
run: cp .github/misskey/test.yml .config
2021-10-27 19:16:13 +03:00
- name: Build
run: pnpm build
# https://github.com/cypress-io/cypress/issues/4351#issuecomment-559489091
- name: ALSA Env
run: echo -e 'pcm.!default {\n type hw\n card 0\n}\n\nctl.!default {\n type hw\n card 0\n}' > ~/.asoundrc
2023-01-26 09:07:15 +02:00
# XXX: This tries reinstalling Cypress if the binary is not cached
# Remove this when the cache issue is fixed
- name: Cypress install
run: pnpm exec cypress install
- name: Cypress run
uses: cypress-io/github-action@v6
timeout-minutes: 15
with:
install: false
start: pnpm start:test
wait-on: 'http://localhost:61812'
2023-04-19 10:42:14 +03:00
headed: true
browser: ${{ matrix.browser }}
- uses: actions/upload-artifact@v4
if: failure()
with:
name: ${{ matrix.browser }}-cypress-screenshots
path: cypress/screenshots
- uses: actions/upload-artifact@v4
if: always()
with:
name: ${{ matrix.browser }}-cypress-videos
path: cypress/videos