- 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.
74 lines
1.9 KiB
YAML
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
|