name: "PR checks" on: [push, pull_request] jobs: tslint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: tslint run: npm run-script lint check-js: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Check generated JavaScript run: | # Sanity check that repo is clean to start with if [ ! -z "$(git status --porcelain)" ]; then # If we get a fail here then this workflow needs attention... >&2 echo "Failed: Repo should be clean before testing!" exit 1 fi # Wipe the lib directory incase there are extra unnecessary files in there rm -rf lib # Generate the JavaScript files npm run-script build # Check that repo is still clean if [ ! -z "$(git status --porcelain)" ]; then # If we get a fail here then the PR needs attention >&2 echo "Failed: JavaScript files are not up to date. Run 'npm run-script build' to update" git status exit 1 fi echo "Success: JavaScript files are up to date" check-node-modules: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Check node modules up to date run: | # Sanity check that repo is clean to start with if [ ! -z "$(git status --porcelain)" ]; then # If we get a fail here then this workflow needs attention... >&2 echo "Failed: Repo should be clean before testing!" exit 1 fi # Reinstall modules and then clean to remove absolute paths # Use 'npm ci' instead of 'npm install' as this is intended to be reproducible npm ci npm run removeNPMAbsolutePaths # Check that repo is still clean if [ ! -z "$(git status --porcelain)" ]; then # If we get a fail here then the PR needs attention >&2 echo "Failed: node_modules are not up to date. Run 'npm ci' and 'npm run removeNPMAbsolutePaths' to update" git status exit 1 fi echo "Success: node_modules are up to date" npm-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: npm run-script test run: npm run-script test