Skip to content

Quality test job

Quality test job #1034

Workflow file for this run

name: "Quality test job"
on:
pull_request:
push:
create:
tags:
- v*
jobs:
# npm unit tests
unittest:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x, 18.x]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: npm install, build, and test
run: |
npm ci
npm run build --if-present
npm test
env:
CI: true
# test action works running from the repo itself
actiontest:
needs: unittest
runs-on: ubuntu-latest
strategy:
matrix:
FILES_EXTENSION: [.pm, .bck, .pm.bck, .pm|.bck ]
node-version: [16.x, 18.x]
env:
CONTROLS_FILE: controls_tests.txt
FILES_DIR: ./__tests__
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Prepare Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- uses: sidey79/ncc@v2.0.0
with:
src: 'main.js'
ncc_args: '-o,dist,--source-map,--license,licenses.txt'
- name: update controls files for extension ${{ matrix.FILES_EXTENSION }}
uses: ./
id: controls
with:
filename: ${{ env.CONTROLS_FILE }}
directory: ${{ env.FILES_DIR }}
extension: ${{ matrix.FILES_EXTENSION }}
- name: Check if controls_tests.txt is written
uses: andstor/file-existence-action@v2.0.0
with:
files: ${{ env.CONTROLS_FILE }}
fail: false
- name: Check if controls_tests.txt has correct output for extension ${{ matrix.FILES_EXTENSION }}
id: contentCheck
run: |
case "${{ matrix.FILES_EXTENSION }}" in
".pm")
[ "$(grep -c "^UPD 2020-12-30_03:02:16 33 ./__tests__/mock.pm$" "${{ env.CONTROLS_FILE }}" )" -eq 1 ] \
&& [ "$(grep -c "^UPD 2021-01-05_22:45:33 36 ./__tests__/mock.pm.bck$" "${{ env.CONTROLS_FILE }}" )" -eq 0 ] \
&& exit 0 || exit 1 ;;
".bck")
[ "$(grep -c "^UPD 2020-12-30_03:02:16 33 ./__tests__/mock.pm$" "${{ env.CONTROLS_FILE }}" )" -eq 0 ] \
&& [ "$(grep -c "^UPD 2021-01-05_22:45:33 36 ./__tests__/mock.pm.bck$" "${{ env.CONTROLS_FILE }}" )" -eq 1 ] \
&& exit 0 || exit 1 ;;
".pm.bck")
[ "$(grep -c "^UPD 2020-12-30_03:02:16 33 ./__tests__/mock.pm$" "${{ env.CONTROLS_FILE }}" )" -eq 0 ] \
&& [ "$(grep -c "^UPD 2021-01-05_22:45:33 36 ./__tests__/mock.pm.bck$" "${{ env.CONTROLS_FILE }}" )" -eq 1 ] \
&& exit 0 || exit 1 ;;
".pm|.bck")
[ "$(grep -c "^UPD 2020-12-30_03:02:16 33 ./__tests__/mock.pm$" "${{ env.CONTROLS_FILE }}" )" -eq 1 ] \
&& [ "$(grep -c "^UPD 2021-01-05_22:45:33 36 ./__tests__/mock.pm.bck$" "${{ env.CONTROLS_FILE }}" )" -eq 1 ] \
&& exit 0 || exit 1 ;;
esac
exit 1
- name: Echo controls output
run: |
echo "${{ steps.controls.outputs.controls_content }}"
# generate new package
ncc:
needs: actiontest
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' }}
steps:
- uses: actions/checkout@v4
- name: Prepare Node.js
uses: actions/setup-node@v3
with:
node-version: 16
- uses: sidey79/ncc@v2.0.0
with:
src: 'main.js'
ncc_args: '-o,dist,--source-map,--license,licenses.txt'
- uses: EndBug/add-and-commit@v9
with:
message: Commit Dist file
committer_name: GitHub Actions
committer_email: actions@github.com
add: 'dist'
commit: --signoff
push: true