name: CI on: push: branches: [main] pull_request: branches: [main] jobs: Build: runs-on: ubuntu-latest strategy: matrix: node-version: [18.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - uses: ./.github/actions/yarn-nm-install - run: yarn build Lint: runs-on: ubuntu-latest strategy: matrix: node-version: [18.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - uses: ./.github/actions/yarn-nm-install - run: | export NODE_OPTIONS="--max_old_space_size=4096" yarn lint:all --max-warnings 0 Test: runs-on: ubuntu-latest strategy: matrix: node-version: [18.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - uses: ./.github/actions/yarn-nm-install - run: yarn test Typecheck: runs-on: ubuntu-latest strategy: matrix: node-version: [18.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - uses: ./.github/actions/yarn-nm-install - run: yarn typecheck VisualRegression: name: Visual regression tests runs-on: ubuntu-latest strategy: matrix: node-version: [18.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - uses: ./.github/actions/yarn-nm-install - name: Run e2e tests run: yarn test:e2e:ci Compatibility-Tests: runs-on: ubuntu-latest strategy: matrix: node-version: [18.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - uses: ./.github/actions/yarn-nm-install # re-enable the following line if we start to get EINTEGRITY errors again # - run: npm cache clean || npm cache verify # This will test whether `npm install`/`yarn install` can actually run on each compatibility test fixture. See `compat-tests/README.md` for more info. - run: yarn workspace @theatre/compat-tests run install-fixtures --verbose # after that, we run the jest tests for each fixture - run: yarn test:compat:run --verbose