Skip to content

feat: enhanced input validation and error handling #96

feat: enhanced input validation and error handling

feat: enhanced input validation and error handling #96

Workflow file for this run

name: Tests
on:
pull_request:
push:
branches:
- main
paths-ignore:
- ".github/**"
- "**.md"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: {}
jobs:
tests:
name: Tests
runs-on: ubuntu-24.04
strategy:
matrix:
name: [backend, frontend-merge, frontend-pr]
include:
- name: backend
dir: backend
triggers: ('backend/')
expected_triggered: false
- name: frontend-merge
dir: frontend
triggers: ('.')
expected_triggered: true
- name: frontend-pr
dir: frontend
expected_triggered: true
steps:
- uses: actions/checkout@v5
- id: action
uses: ./
with:
commands: |
npm ci
npm run test:cov
dir: ${{ matrix.dir }}
node_version: "20"
repository: bcgov/quickstart-openshift
sonar_args: >
-Dsonar.exclusions=**/coverage/**,**/node_modules/**,**/*spec.ts
-Dsonar.javascript.lcov.reportPaths=./coverage/lcov.info
-Dsonar.organization=bcgov-nr
-Dsonar.projectKey=bcgov-nr_action-test-and-analyse_${{ matrix.dir }}
-Dsonar.sources=src
-Dsonar.tests.inclusions=**/*spec.ts
sonar_token: ${{ matrix.name == 'backend' && secrets.SONAR_TOKEN_BACKEND || secrets.SONAR_TOKEN_FRONTEND }}
triggers: ${{ matrix.triggers }}
- name: Verify trigger behavior
run: |
echo "🔍 Verifying trigger behavior for ${{ matrix.name }}"
echo "Expected: ${{ matrix.expected_triggered }}"
echo "Actual: ${{ steps.action.outputs.triggered }}"
case "${{ matrix.name }}" in
"backend")
if [ "${{ steps.action.outputs.triggered }}" != "false" ]; then
echo "❌ Backend job should NOT have been triggered (no backend/ changes)"
exit 1
else
echo "✅ Backend job correctly NOT triggered"
fi
;;
"frontend-merge")
if [ "${{ steps.action.outputs.triggered }}" != "true" ]; then
echo "❌ Frontend-merge job should have been triggered (triggers: '.')"
exit 1
else
echo "✅ Frontend-merge job correctly triggered"
fi
;;
"frontend-pr")
if [ "${{ steps.action.outputs.triggered }}" != "true" ]; then
echo "❌ Frontend-pr job should have been triggered (no triggers = always run)"
exit 1
else
echo "✅ Frontend-pr job correctly triggered"
fi
;;
esac
echo "🎉 ${{ matrix.name }} trigger behavior verified correctly!"