Add publish instructions #219
Workflow file for this run
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
name: CI | |
on: [push, pull_request] | |
env: | |
NODE_VERSION_USED_FOR_DEVELOPMENT: 16 | |
jobs: | |
lint: | |
name: Lint source files | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
- name: Setup Node.js | |
uses: actions/setup-node@v1 | |
with: | |
node-version: ${{ env.NODE_VERSION_USED_FOR_DEVELOPMENT }} | |
- name: Cache Node.js modules | |
uses: actions/cache@v2 | |
with: | |
path: ~/.npm | |
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.OS }}-node- | |
- name: Install Dependencies | |
run: npm ci | |
- name: Lint ESLint | |
run: npm run lint | |
- name: Check TypeScript | |
run: npm run check | |
- name: Lint Prettier | |
run: npm run prettier:check | |
- name: Spellcheck | |
run: npm run check:spelling | |
checkForCommonlyIgnoredFiles: | |
name: Check for commonly ignored files | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
- name: Check if commit contains files that should be ignored | |
run: | | |
git clone --depth 1 https://github.com/github/gitignore.git && | |
cat gitignore/Node.gitignore $(find gitignore/Global -name "*.gitignore" | grep -v ModelSim) > all.gitignore && | |
if [[ "$(git ls-files -iX all.gitignore)" != "" ]]; then | |
echo "::error::Please remove these files:" | |
git ls-files -iX all.gitignore | |
exit 1 | |
fi | |
checkPackageLock: | |
name: Check health of package-lock.json file | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
- name: Setup Node.js | |
uses: actions/setup-node@v1 | |
with: | |
node-version: ${{ env.NODE_VERSION_USED_FOR_DEVELOPMENT }} | |
- name: Run npm install | |
run: npm install --package-lock-only --engine-strict --strict-peer-deps | |
- name: Check that package-lock.json is in sync with package.json | |
run: git diff --exit-code package-lock.json | |
coverage: | |
name: Measure test coverage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
- name: Setup Node.js | |
uses: actions/setup-node@v1 | |
with: | |
node-version: ${{ env.NODE_VERSION_USED_FOR_DEVELOPMENT }} | |
- name: Cache Node.js modules | |
uses: actions/cache@v2 | |
with: | |
path: ~/.npm | |
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.OS }}-node- | |
- name: Install Dependencies | |
run: npm ci | |
- name: Run tests and measure code coverage | |
run: npm run testonly:cover | |
- name: Upload coverage to Codecov | |
if: ${{ always() }} | |
uses: codecov/codecov-action@v1 | |
with: | |
file: ./coverage/coverage-final.json | |
fail_ci_if_error: true | |
test: | |
name: Run tests on Node v${{ matrix.node_version_to_setup }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node_version_to_setup: [12, 14, 15] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
- name: Setup Node.js v${{ matrix.node_version_to_setup }} | |
uses: actions/setup-node@v1 | |
with: | |
node-version: ${{ matrix.node_version_to_setup }} | |
- name: Cache Node.js modules | |
uses: actions/cache@v2 | |
with: | |
path: ~/.npm | |
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.OS }}-node- | |
- name: Install Dependencies | |
run: npm ci | |
- name: Run Tests | |
run: npm run testonly |