From 8bf6911d4b7222af1a85212aada0c8a23da47631 Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 7 Mar 2023 20:23:44 +0900 Subject: refactor(dev): separate test workflows --- .github/workflows/test-frontend.yml | 83 +++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 .github/workflows/test-frontend.yml (limited to '.github/workflows/test-frontend.yml') diff --git a/.github/workflows/test-frontend.yml b/.github/workflows/test-frontend.yml new file mode 100644 index 0000000000..c0753b8fb5 --- /dev/null +++ b/.github/workflows/test-frontend.yml @@ -0,0 +1,83 @@ +name: Test (frontend) + +on: + push: + branches: + - master + - develop + pull_request: + +jobs: + cypress: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + node-version: [18.x] + browser: [chrome] + + services: + postgres: + image: postgres:13 + ports: + - 54312:5432 + env: + POSTGRES_DB: test-misskey + POSTGRES_HOST_AUTH_METHOD: trust + redis: + image: redis:6 + ports: + - 56312:6379 + + steps: + - uses: actions/checkout@v3.3.0 + 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@v2 + with: + version: 7 + run_install: false + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3.6.0 + with: + node-version: ${{ matrix.node-version }} + cache: 'pnpm' + - run: corepack enable + - run: pnpm i --frozen-lockfile + - name: Copy Configure + run: cp .github/misskey/test.yml .config + - 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 + # 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@v5 + with: + install: false + start: pnpm start:test + wait-on: 'http://localhost:61812' + headless: false + browser: ${{ matrix.browser }} + - uses: actions/upload-artifact@v2 + if: failure() + with: + name: ${{ matrix.browser }}-cypress-screenshots + path: cypress/screenshots + - uses: actions/upload-artifact@v2 + if: always() + with: + name: ${{ matrix.browser }}-cypress-videos + path: cypress/videos -- cgit v1.2.3-freya