Skip to content

ci: pin checkout, setup-python, quarto-actions, upload-artifact, acti… #246

ci: pin checkout, setup-python, quarto-actions, upload-artifact, acti…

ci: pin checkout, setup-python, quarto-actions, upload-artifact, acti… #246

Workflow file for this run

name: CI Pipeline
on:
push:
branches:
- main
- develop
- 'feature/**'
- 'bugfix/**'
pull_request:
branches:
- main
- develop
workflow_dispatch:
env:
NODE_VERSION: '20.x'
PYTHON_VERSION: '3.11'
jobs:
# Unit and integration tests
test:
name: Test (Node ${{ matrix.node-version }})
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
node-version: ['18.x', '20.x']
fail-fast: false
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm run test:ci
env:
CI: true
continue-on-error: true
- name: Upload coverage to Codecov
uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4
if: matrix.node-version == '20.x'
with:
files: ./coverage/coverage-final.json
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
# Validate coordination files
validate-coordination:
name: Validate Coordination Files
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
with:
python-version: ${{ env.PYTHON_VERSION }}
cache: 'pip'
- name: Install JSON/YAML validator
run: pip install jsonschema pyyaml
- name: Validate JSON files
run: |
find coordination/ -name "*.json" -exec python -m json.tool {} \; > /dev/null 2>&1 && echo "All JSON files are valid" || echo "JSON validation warnings (non-fatal)"
continue-on-error: true
- name: Validate YAML files
run: |
find coordination/ \( -name "*.yaml" -o -name "*.yml" \) | while read file; do
python -c "
import yaml, sys

Check failure on line 88 in .github/workflows/ci.yaml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci.yaml

Invalid workflow file

You have an error in your yaml syntax on line 88
with open('$file') as f:
list(yaml.safe_load_all(f))
" || echo "Warning: $file has issues"
done
echo "YAML validation complete"
# CI summary
ci-success:
name: CI Pipeline Success
runs-on: ubuntu-latest
needs:
- test
- validate-coordination
if: always()
steps:
- name: CI Summary
run: |
echo "CI run complete"
echo "Branch: ${{ github.ref }}"
echo "Commit: ${{ github.sha }}"
echo "Actor: ${{ github.actor }}"