name: CI on: push: branches: - master pull_request: {} jobs: lint: name: Lint runs-on: 'ubuntu-latest' steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v2 with: node-version: '18' - name: Install dependencies run: npm ci - name: Lint run: npm run lint dependencies: name: Test (dependencies) runs-on: 'ubuntu-latest' steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v2 with: # Node 14 ships with npm v6, which doesn't install peer-dependencies by default. # Starting with npm v7 (which is shipped with Node >= 16), peer-dependencies are # automatically installed. So this test (check for unmet peer-dependencies) only # works with Node <= 14. node-version: '14' # Simulate an installation by a dependent package - name: Install dependencies run: | rm package-lock.json npm install --production - name: Check dependency tree run: npm ls 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: ['12', '14', '16', '18', '20'] steps: - name: Checkout uses: actions/checkout@v2 with: submodules: true - name: Setup Node.js uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} - name: Install dependencies run: npm ci - name: Test run: npm run test - name: Test (Integration) 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-22.04' steps: - name: Checkout uses: actions/checkout@v2 with: submodules: true - name: Setup Node.js uses: actions/setup-node@v2 with: node-version: '18' - 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