fix(engine): rule engine refactor and update #4073
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
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions | |
name: All branch testing | |
on: [ pull_request, merge_group ] | |
jobs: | |
############################################################################### | |
# Engine test | |
#### | |
accessibility-checker-engine-test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: node main.js & | |
working-directory: rule-server/dist | |
- run: sleep 10 | |
working-directory: rule-server/dist | |
- run: curl --insecure https://localhost:9445/tools/api/pub/meter/v2 | |
- run: google-chrome --version | |
- run: npm install | |
working-directory: accessibility-checker-engine | |
- run: npx karma start karmaaction.conf.js --single-run --watch=false | |
working-directory: accessibility-checker-engine | |
- run: npx mocha ./test/mocha/help/help.test.js | |
working-directory: accessibility-checker-engine | |
- name: Upload rule listing | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Rule listing | |
path: accessibility-checker-engine/dist/help/rules.html | |
- name: Upload rule mapping spreadsheet | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Rule mapping spreadsheet | |
path: accessibility-checker-engine/dist/help/rules.csv | |
act-results: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- run: npm install | |
working-directory: accessibility-checker-engine | |
- run: npm install | |
working-directory: report-react | |
- run: npm run build:all | |
working-directory: accessibility-checker-engine | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: node main.js & | |
working-directory: rule-server/dist | |
- run: sleep 10 | |
working-directory: rule-server/dist | |
- run: npm install | |
working-directory: accessibility-checker | |
- run: npm run build | |
working-directory: accessibility-checker | |
- run: npm test | |
working-directory: accessibility-checker/test-act-w3 | |
- name: Upload packed extension | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ACT Text Results | |
path: accessibility-checker/test-act-w3/act-report-v2.txt | |
############################################################################### | |
# Node basic test Windows | |
#### | |
accessibility-checker-test-basic-windows: | |
runs-on: windows-2022 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: cmd /c "START /b node main.js" | |
working-directory: rule-server/dist | |
env: | |
__NODB__: true | |
- run: ping 127.0.0.1 -n 6 > nul | |
- run: netstat -o -n -a | findstr 9445 | |
# - run: curl -X GET "http://localhost:9445/rules/archives.json" | |
- run: sleep 10 | |
- run: npm install | |
working-directory: accessibility-checker-engine | |
- run: npm install | |
working-directory: report-react | |
- run: npm install | |
working-directory: accessibility-checker | |
- run: npm run build | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.Baselines/*.test.js | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.Functions.Defined/*.test.js | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.ObjectStructure/*.test.js | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.Scans/aChecker.assertionCompliance.test.js | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.Scans/aChecker.Content.Puppeteer.test.js | |
working-directory: accessibility-checker | |
############################################################################### | |
# Node basic test | |
#### | |
accessibility-checker-test-basic: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [14.x, 18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: node main.js & | |
working-directory: rule-server/dist | |
- run: sleep 10 | |
working-directory: rule-server/dist | |
- run: npm install | |
working-directory: accessibility-checker-engine | |
- run: npm install | |
working-directory: report-react | |
- run: npm install | |
working-directory: accessibility-checker | |
- run: npm run build | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.Baselines/*.test.js | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.Functions.Defined/*.test.js | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.ObjectStructure/*.test.js | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.Scans/aChecker.assertionCompliance.test.js | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.Scans/aChecker.Content.Puppeteer.test.js | |
working-directory: accessibility-checker | |
############################################################################### | |
# Node basic test | |
#### | |
accessibility-checker-test-basic2: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: node main.js & | |
working-directory: rule-server/dist | |
- run: sleep 10 | |
working-directory: rule-server/dist | |
- run: npm install | |
working-directory: accessibility-checker-engine | |
- run: npm install | |
working-directory: report-react | |
- run: npm install | |
working-directory: accessibility-checker | |
- run: npm run build | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.Scans/aChecker.Content.test.js | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Fast/aChecker.Scans/aChecker.URL.test.js | |
working-directory: accessibility-checker | |
############################################################################### | |
# Node Selenium test | |
#### | |
accessibility-checker-test-selenium: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: node main.js & | |
working-directory: rule-server/dist | |
- run: sleep 10 | |
working-directory: rule-server/dist | |
- run: npm install | |
working-directory: accessibility-checker-engine | |
- run: npm install | |
working-directory: report-react | |
- run: npm install | |
working-directory: accessibility-checker | |
- run: npm run build | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Slow1/aChecker.Scans/**/*.test.js | |
working-directory: accessibility-checker | |
- run: npx mocha -R dot test/mocha/aChecker.Slow1/aChecker.ObjectStructure/**/*.test.js | |
working-directory: accessibility-checker | |
############################################################################### | |
# Node Playwright test | |
#### | |
accessibility-checker-test-playwright: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: node main.js & | |
working-directory: rule-server/dist | |
- run: sleep 10 | |
working-directory: rule-server/dist | |
- run: npm install | |
working-directory: accessibility-checker-engine | |
- run: npm install | |
working-directory: report-react | |
- run: npm install | |
working-directory: accessibility-checker | |
- run: npx playwright install chromium | |
working-directory: accessibility-checker | |
- run: npm run build | |
working-directory: accessibility-checker | |
- run: npx playwright test test/mocha/aChecker.Playwright/aChecker.Scans/*.mjs | |
working-directory: accessibility-checker | |
############################################################################### | |
# Node WebdriverIO test | |
#### | |
accessibility-checker-test-wdio: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- name: Latest Chrome | |
uses: browser-actions/setup-chrome@v1 | |
with: | |
chrome-version: latest | |
id: setup-chrome | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: node main.js & | |
working-directory: rule-server/dist | |
- run: sleep 10 | |
working-directory: rule-server/dist | |
- run: npm install | |
working-directory: accessibility-checker-engine | |
- run: npm install | |
working-directory: report-react | |
- run: npm install | |
working-directory: accessibility-checker | |
- run: npm run build | |
working-directory: accessibility-checker | |
- run: npm install | |
working-directory: accessibility-checker/test/webdriverio | |
- run: npm run wdio | |
working-directory: accessibility-checker/test/webdriverio | |
############################################################################### | |
# Java test | |
#### | |
java-accessibility-checker-selenium-test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'semeru' # See 'Supported distributions' for available options | |
java-version: '17' | |
- name: Latest Chrome | |
uses: browser-actions/setup-chrome@v1 | |
with: | |
chrome-version: latest | |
install-chromedriver: true | |
id: setup-chrome | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: node main.js & | |
working-directory: rule-server/dist | |
- run: sleep 10 | |
working-directory: rule-server/dist | |
- name: Test package | |
run: mvn --batch-mode test -Dtest="AccessibilityCheckerSeleniumTest" | |
working-directory: java-accessibility-checker | |
env: | |
chromedriverpath: ${{ steps.setup-chrome.outputs.chromedriver-path }} | |
chromebinpath: ${{ steps.setup-chrome.outputs.chrome-path }} | |
java-accessibility-checker-playwright-test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'semeru' # See 'Supported distributions' for available options | |
java-version: '17' | |
- name: Latest Chrome | |
uses: browser-actions/setup-chrome@v1 | |
with: | |
chrome-version: latest | |
install-chromedriver: true | |
id: setup-chrome | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: node main.js & | |
working-directory: rule-server/dist | |
- run: sleep 10 | |
working-directory: rule-server/dist | |
- name: Test package | |
run: mvn --batch-mode test -Dtest="AccessibilityCheckerPlaywrightTest" | |
working-directory: java-accessibility-checker | |
env: | |
chromedriverpath: ${{ steps.setup-chrome.outputs.chromedriver-path }} | |
chromebinpath: ${{ steps.setup-chrome.outputs.chrome-path }} | |
############################################################################### | |
# Karma Tests | |
#### | |
karma-accessibility-checker-test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
# test-file: [karma.conf1.js, karma.conf1b.js, karma.conf2.js, karma.conf2b.js, karma.conf3.js] // conf1 and conf2 fail a lot | |
test-file: [karma.conf1b.js, karma.conf2b.js, karma.conf3.js] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: node main.js & | |
working-directory: rule-server/dist | |
- run: sleep 10 | |
working-directory: rule-server/dist | |
- run: npm install | |
working-directory: accessibility-checker-engine | |
- run: npm install | |
working-directory: report-react | |
- run: npm install | |
working-directory: common/module | |
- run: npm install | |
working-directory: karma-accessibility-checker | |
- run: npm run setup | |
working-directory: karma-accessibility-checker | |
- run: sleep 10 | |
- run: npm run build | |
working-directory: karma-accessibility-checker | |
- run: npm run installPlugin | |
working-directory: karma-accessibility-checker | |
- name: Test using configuration ${{ matrix.test-file }} | |
run: npx karma start ${{ matrix.test-file }}; | |
working-directory: karma-accessibility-checker | |
############################################################################### | |
# Cypress test | |
#### | |
cypress-checker-test-basic: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: node main.js & | |
working-directory: rule-server/dist | |
- run: sleep 10 | |
working-directory: rule-server/dist | |
- run: npm install | |
working-directory: accessibility-checker-engine | |
- run: npm install | |
working-directory: report-react | |
- run: npm install | |
working-directory: common/module | |
- run: npm install | |
working-directory: cypress-accessibility-checker | |
- run: npm run build:common | |
working-directory: cypress-accessibility-checker | |
- run: npm run test:start-http & | |
working-directory: cypress-accessibility-checker | |
- run: npx cypress run | |
working-directory: cypress-accessibility-checker/test | |
############################################################################### | |
# Extension Build verification and test | |
#### | |
extension-test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- run: npm install | |
working-directory: report-react | |
- run: npm install | |
working-directory: accessibility-checker-extension | |
- run: npm install | |
working-directory: accessibility-checker-extension/test | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: sed -i'.old' -e "s/[\"|']use strict[\"|']//g" ./exceljs.js | |
working-directory: accessibility-checker-extension/node_modules/exceljs/dist | |
- run: sed -i'.old' -e "s/[\"|']use strict[\"|']//g" ./exceljs.min.js | |
working-directory: accessibility-checker-extension/node_modules/exceljs/dist | |
- run: cp -f ./manifest_Chrome.json ./src/manifest.json | |
working-directory: accessibility-checker-extension | |
- run: npm run package:browser | |
working-directory: accessibility-checker-extension | |
- name: UI Tests | |
run: npm test | |
working-directory: accessibility-checker-extension/test | |
- name: Upload packed extension | |
uses: actions/upload-artifact@v4 | |
with: | |
name: accessibility-checker-extension for Chrome | |
path: accessibility-checker-extension/package/accessibility-checker-extension.zip | |
- run: cp -f ./manifest_Firefox.json ./src/manifest.json | |
working-directory: accessibility-checker-extension | |
- run: npm run package:browser | |
working-directory: accessibility-checker-extension | |
- name: Upload packed extension | |
uses: actions/upload-artifact@v4 | |
with: | |
name: accessibility-checker-extension for Firefox | |
path: accessibility-checker-extension/package/accessibility-checker-extension.zip | |
rule-deploy: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- run: npm install | |
working-directory: rule-server | |
- run: npm run build | |
working-directory: rule-server | |
- run: gitactions/publish/rules.sh | |
env: | |
BLUEMIX_USERID: apikey | |
BLUEMIX_PASS: ${{ secrets.BLUEMIX_PASS }} | |
CLOUD_PWD: ${{ secrets.CLOUD_PWD }} | |
TRAVIS_BRANCH: sandbox |