Quality test job #1145
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: "Quality test job" | |
on: | |
pull_request: | |
push: | |
create: | |
tags: | |
- v* | |
jobs: | |
# npm unit tests | |
unittest: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [18.x, 20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
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: [18.x, 20.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@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: sidey79/ncc@v2.2.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@v3.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@v4 | |
with: | |
node-version: 20 | |
- uses: sidey79/ncc@v2.2.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 |