name: CI on: push: branches: - master pull_request: {} jobs: lint: name: Lint runs-on: 'ubuntu-latest' steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '16' - name: Install dependencies run: npm ci - name: Lint run: npm run lint test: name: Test (Node) runs-on: ${{ matrix.operating-system }} strategy: fail-fast: false matrix: operating-system: ['ubuntu-latest', 'windows-latest'] # https://nodejs.org/en/about/releases/ node-version: ['10', '12', '14', '16', '18', '20'] steps: - name: Checkout uses: actions/checkout@v4 with: submodules: true - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - name: Install dependencies run: npm ci - name: Test run: npm run test - name: Test (Integration) # https://github.com/webpack/webpack/issues/14532 if: ${{ matrix.node-version != '18' && matrix.node-version != '20' }} run: | cd ./tests/integration/rollup-test && ./test.sh && cd - cd ./tests/integration/webpack-babel-test && ./test.sh && cd - cd ./tests/integration/webpack-test && ./test.sh && cd - browser: name: Test (Browser) runs-on: 'ubuntu-20.04' steps: - name: Checkout uses: actions/checkout@v4 with: submodules: true - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '16' - name: Install dependencies run: npm ci - name: Install Playwright run: | npx playwright install-deps npx playwright install - name: Build run: npx grunt prepare - name: Test run: npm run test:browser