Files
Clément SAILLANT 124906d084 feat: Add comprehensive CI/CD workflows and badges for compliance, security, and quality assurance
- Introduced multiple guides for workflows including Evidence Pack Validation, Incident Response, Model Validation, Performance & HIL, Release Signing, SBOM Validation, Secret Scanning, and Supply Chain Attestation.
- Created dynamic badges for each workflow to reflect their status and compliance.
- Implemented a checklist for validating CI/CD workflows and evidence packs.
- Developed scripts for building firmware, testing, collecting evidence, and generating audit reports.
- Added tools for generating community, documentation, quality, and security badges based on various reports.
- Established endpoints for dynamic badges to be integrated into documentation and README files.
- Enhanced the overall structure and traceability of CI/CD processes with evidence packs and automated checks.
2026-02-19 08:58:10 +01:00

74 lines
1.9 KiB
YAML

name: CI/CD Multi-cible Hardware-in-the-Loop
on:
push:
paths:
- 'firmware/**'
- 'hardware/**'
- 'specs/**'
- 'tools/**'
pull_request:
paths:
- 'firmware/**'
- 'hardware/**'
- 'specs/**'
- 'tools/**'
jobs:
build-test-multi-target:
runs-on: ubuntu-latest
strategy:
matrix:
target: [esp, stm, linux]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PlatformIO (ESP/STM)
if: matrix.target == 'esp' || matrix.target == 'stm'
run: pip install platformio
- name: Setup QEMU (Linux)
if: matrix.target == 'linux'
run: sudo apt-get install -y qemu
- name: Build firmware
run: python tools/build_firmware.py ${{ matrix.target }}
- name: Run tests
run: python tools/test_firmware.py ${{ matrix.target }}
- name: Collect evidence pack
run: python tools/collect_evidence.py ${{ matrix.target }}
- name: Upload evidence pack
uses: actions/upload-artifact@v4
with:
name: evidence-pack-${{ matrix.target }}
path: docs/evidence/
- name: Validate gates (conformité, sécurité)
run: python tools/gatekeeper.py ${{ matrix.target }}
- name: Generate coverage badge
run: python coverage_badge.py
- name: Upload coverage badge
uses: actions/upload-artifact@v4
with:
name: coverage-badge
path: README.md
- name: Release (si tag)
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
run: echo "Release process (à compléter)"
verify-evidence:
runs-on: ubuntu-latest
needs: build-test-multi-target
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Vérification automatisée evidence packs
run: python tools/auto_check_ci_cd.py