CI #50
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions | |
name: CI | |
on: | |
workflow_dispatch: | |
jobs: | |
code-quality: | |
runs-on: ubuntu-latest | |
name: Code quality | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: "yarn" | |
cache-dependency-path: "yarn.lock" | |
- name: Install the packages | |
run: yarn install --frozen-lockfile --ignore-engines | |
- name: Build the code | |
run: yarn build:ci | |
- name: Type check (for tests) | |
run: yarn type-check | |
- name: Check formatting | |
run: yarn format:check | |
tests: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
matrix: | |
os: [windows-latest, ubuntu-latest] | |
node-version: [18, 20] | |
name: Tests / OS ${{ matrix.os }} / NodeJS ${{ matrix.node-version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- name: Cache node_modules | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-node-modules-${{ hashFiles('**/yarn.lock') }} | |
- name: Cache yarn cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-cache-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn-cache-${{ hashFiles('**/yarn.lock') }} | |
- name: Install the packages | |
run: yarn install --frozen-lockfile --ignore-engines | |
- name: Build the code | |
run: yarn build:ts | |
- name: Run the unit tests | |
run: yarn test | |
- name: Run the prettier2 unit tests | |
run: yarn --cwd packages/prettier-plugin-liquid test | |
- name: Run the prettier2 idempotence tests | |
run: yarn --cwd packages/prettier-plugin-liquid test:idempotence | |
- name: Run the prettier3 unit tests | |
run: yarn --cwd packages/prettier-plugin-liquid test:3 | |
- name: Run the prettier3 idempotence tests | |
run: yarn --cwd packages/prettier-plugin-liquid test:idempotence:3 | |
# testing the repo |