Skip to content

chore(deps): update registry.access.redhat.com/ubi9/nodejs-22-minimal docker tag to v9.8-1787687000 #307

chore(deps): update registry.access.redhat.com/ubi9/nodejs-22-minimal docker tag to v9.8-1787687000

chore(deps): update registry.access.redhat.com/ubi9/nodejs-22-minimal docker tag to v9.8-1787687000 #307

Workflow file for this run

name: CI
on:
pull_request:
branches: [main]
jobs:
test:
name: Test & Build
runs-on: ubuntu-latest
outputs:
app: ${{ steps.changes.outputs.app }}
steps:
- name: Checkout code
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Detect changed paths
id: changes
run: |
CHANGED=$(git diff --name-only ${{ github.event.pull_request.base.sha }} HEAD)
if echo "$CHANGED" | grep -qE '^(src/|server/|modules/|shared/|scripts/validate|package|vite\.config|tailwind\.config|postcss\.config|vitest\.config|index\.html|public/|tests/smoke/|playwright\.config|Makefile)'; then
echo "app=true" >> "$GITHUB_OUTPUT"
fi
if echo "$CHANGED" | grep -q '^deploy/'; then
echo "deploy=true" >> "$GITHUB_OUTPUT"
fi
- name: Setup Node.js
if: steps.changes.outputs.app == 'true'
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
- name: Setup Socket Security
if: steps.changes.outputs.app == 'true'
uses: SocketDev/action@ba6de6cc0565af1f42295590380973573297e31f # v1.3.2
with:
mode: firewall-free
- name: Install dependencies
if: steps.changes.outputs.app == 'true'
run: |
if command -v sfw &> /dev/null; then
sfw npm ci
else
echo "::warning::Socket firewall not available, falling back to plain npm ci"
npm ci
fi
- name: Security audit
if: steps.changes.outputs.app == 'true'
run: npm audit --omit=dev --audit-level=high
- name: Validate module manifests
if: steps.changes.outputs.app == 'true'
run: npm run validate:modules
- name: Run linting
if: steps.changes.outputs.app == 'true'
run: npm run lint
- name: Run tests
if: steps.changes.outputs.app == 'true'
run: npm test
- name: Validate OpenAPI spec
if: steps.changes.outputs.app == 'true'
run: npm run validate:openapi
- name: Build
if: steps.changes.outputs.app == 'true'
run: npm run build
- name: Install kustomize
if: steps.changes.outputs.deploy == 'true'
uses: imranismail/setup-kustomize@v3
with:
kustomize-version: '5.8.1'
- name: Validate kustomize overlays
if: steps.changes.outputs.deploy == 'true'
run: |
for overlay in deploy/openshift/overlays/*/; do
name=$(basename "$overlay")
echo "=== Validating overlay: $name ==="
kustomize build "$overlay" > /dev/null
done
smoke-test-core:
name: Core Smoke Tests
runs-on: ubuntu-latest
needs: test
if: needs.test.outputs.app == 'true'
permissions:
contents: read
env:
CONTAINER_RUNTIME: docker
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Build core backend image
run: make build-core-backend-image
- name: Build core frontend image
run: make build-core-frontend-image
- name: Run core smoke tests
run: make smoke-test-core
smoke-test-ai-eng:
name: AI Eng Smoke Tests
runs-on: ubuntu-latest
needs: test
if: needs.test.outputs.app == 'true'
permissions:
contents: read
env:
CONTAINER_RUNTIME: docker
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Build core base images (needed for AI Eng FROM)
run: make build-core-base-images
- name: Build AI Eng images
run: |
make build-backend-image
make build-frontend-image
- name: Run AI Eng smoke tests
run: make smoke-test