name: Test on: push: branches: - master - develop pull_request: jobs: jest: runs-on: ubuntu-latest strategy: matrix: node-version: [18.x] services: postgres: image: postgres:13 ports: - 54312:5432 env: POSTGRES_DB: test-misskey POSTGRES_HOST_AUTH_METHOD: trust YARN_CHECKSUM_BEHAVIOR: update redis: image: redis:6 ports: - 56312:6379 steps: - uses: actions/checkout@v2 with: submodules: true - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.2.0 with: node-version: ${{ matrix.node-version }} cache: 'yarn' - run: corepack enable - run: yarn install --immutable - name: Check yarn.lock run: git diff --exit-code yarn.lock - name: Copy Configure run: cp .github/misskey/test.yml .config - name: Build run: yarn build - name: Test run: yarn jest-and-coverage - name: Upload Coverage uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} files: ./packages/backend/coverage/coverage-final.json e2e: 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@v2 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: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.2.0 with: node-version: ${{ matrix.node-version }} cache: 'yarn' - run: corepack enable - run: yarn install --immutable env: YARN_CHECKSUM_BEHAVIOR: update - name: Copy Configure run: cp .github/misskey/test.yml .config - name: Build run: yarn 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 - name: Cypress run uses: cypress-io/github-action@v4 with: install: false start: yarn 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