From 0610749bf917b921dfbf53351376936ab24f4d95 Mon Sep 17 00:00:00 2001 From: Gligor Kotushevski Date: Wed, 1 Mar 2023 22:38:33 +1300 Subject: [PATCH] ci: Configure PR validation (#646) --- .github/workflows/validate.yml | 45 ++++++++++++++++++++++++++++++++++ package.json | 4 +-- 2 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/validate.yml diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml new file mode 100644 index 00000000..f1fc01aa --- /dev/null +++ b/.github/workflows/validate.yml @@ -0,0 +1,45 @@ +name: Validate + +on: + pull_request: + branches: [master] + +jobs: + validate: + strategy: + matrix: + version: [12, 14, 16, 18] + os: [ubuntu-latest, windows-latest] + + runs-on: ${{ matrix.os }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Retrieve dependencies from cache + id: cacheNpm + uses: actions/cache@v3 + with: + path: | + ~/.npm + node_modules + key: npm-v${{ matrix.version }}-${{ matrix.os }}-${{ github.ref }}-${{ hashFiles('package.json') }} + restore-keys: | + npm-v${{ matrix.version }}-${{ matrix.os }}-${{ github.ref }}- + npm-v${{ matrix.version }}-${{ matrix.os }}-refs/heads/master- + + - name: Install Node.js and npm + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.version }} + + - name: Install dependencies + if: steps.cacheNpm.outputs.cache-hit != 'true' + run: | + npm ci + + - name: Validate lint rules + run: npm run lint + + - name: Run tests + run: npm run test:ci diff --git a/package.json b/package.json index 94c83ca4..06a2f036 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ "lint:fix": "eslint src/**/*.ts --fix", "pretest": "npm run lint", "test": "jest", - "test:ci": "npm run test -- --ci", - "test:coverage": "npm run test -- --coverage", + "test:ci": "npm run test:coverage -- --ci", + "test:coverage": "npm run test -- --config ./jest.config.js", "clean:int": "rm -rf integrationTests/configurations/**/.serverless integrationTests/configurations/**/node_modules integrationTests/configurations/**/local.settings.json", "pretest:int": "npm run clean:int", "test:int": "clvr",