diff --git a/.github/workflows/integration.yaml b/.github/workflows/integration.yaml index d339d48a..365b1231 100644 --- a/.github/workflows/integration.yaml +++ b/.github/workflows/integration.yaml @@ -1,28 +1,67 @@ -name: Actions-CI +name: CI on: push: - branches: [master, v5] + branches: [master] pull_request: - branches: [master, v5] + +permissions: + contents: read jobs: - build: + 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: lts/* + cache: npm + - name: Install dependencies + run: npm install + - name: Run Linter + run: npm run eslint + - name: Run Formatter + run: npm run prettier + test: + name: Test / ${{ matrix.node-version }} + runs-on: ubuntu-latest strategy: matrix: node-version: [latest, lts/*, lts/-1] - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Node.js (${{ matrix.node-version }}) + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: npm - - name: Install dependencies and test + - name: Install dependencies + run: npm install + - name: Run tests + run: npm test + + api: + name: API & Doc Validation + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: lts/* + cache: npm + - name: Install dependencies run: npm install - - run: npm test - - run: npm run eslint - - run: npm run prettier + - name: Extract API + run: npm run api:extract + - name: Generate docs + run: npm run api:docs + - name: Ensure API and doc changes have been committed + run: (( "$(git status --porcelain=1 | wc -l)" != 0 )) && exit 1