kopia lustrzana https://github.com/RobertGawron/IonizationChamber
254 wiersze
7.4 KiB
YAML
Executable File
254 wiersze
7.4 KiB
YAML
Executable File
name: CI Pipeline
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- '*'
|
|
pull_request:
|
|
branches:
|
|
- '*'
|
|
|
|
jobs:
|
|
run-c-static-analysis:
|
|
name: Run C Static Analysis
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install Docker Compose
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y docker-compose
|
|
|
|
- name: Build and Start Docker Compose
|
|
run: |
|
|
docker-compose up -d
|
|
|
|
- name: Run C Static Analysis
|
|
run: |
|
|
docker-compose exec -T ionizationchamber bash -c "python3 -m venv /workspace/venv && source /workspace/venv/bin/activate && cd /workspace/build && cmake .. && make cstatic"
|
|
|
|
- name: Copy C Analysis Reports to Host
|
|
run: |
|
|
docker cp ionizationchamber:/workspace/DevOps/BuildArtifacts/CStaticAnalysis .
|
|
|
|
- name: Archive C Analysis Reports
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: c-lint-reports
|
|
path: CStaticAnalysis
|
|
|
|
- name: Clean Up Containers
|
|
run: |
|
|
docker-compose down
|
|
|
|
run-python-static-analysis:
|
|
name: Run Python Static Analysis
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install Docker Compose
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y docker-compose
|
|
|
|
- name: Build and Start Docker Compose
|
|
run: |
|
|
docker-compose up -d
|
|
|
|
- name: Run Python Static Analysis
|
|
run: |
|
|
docker-compose exec -T ionizationchamber bash -c "python3 -m venv /workspace/venv && source /workspace/venv/bin/activate && pip install -e /workspace/Software/MeasurementAcquisition && cd /workspace/build/ && cmake .. && make pystatic"
|
|
|
|
- name: Copy Python Analysis Reports to Host
|
|
run: |
|
|
docker cp ionizationchamber:/workspace/DevOps/BuildArtifacts/PyStaticAnalysis .
|
|
|
|
- name: Archive Python Analysis Reports
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: python-lint-reports
|
|
path: PyStaticAnalysis
|
|
|
|
- name: Clean Up Containers
|
|
run: |
|
|
docker-compose down
|
|
|
|
run-r-static-analysis:
|
|
name: Run R Static Analysis
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install Docker Compose
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y docker-compose
|
|
|
|
- name: Build and Start Docker Compose
|
|
run: |
|
|
docker-compose up -d
|
|
|
|
- name: Run R Static Analysis
|
|
run: |
|
|
docker-compose exec -T ionizationchamber bash -c "source /workspace/venv/bin/activate && cd /workspace/build && cmake .. && make rstatic"
|
|
|
|
- name: Copy R Analysis Reports to Host
|
|
run: |
|
|
docker cp ionizationchamber:/workspace/DevOps/BuildArtifacts/RStaticAnalysis .
|
|
|
|
- name: Archive R Analysis Reports
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: r-lint-reports
|
|
path: RStaticAnalysis
|
|
|
|
- name: Clean Up Containers
|
|
run: |
|
|
docker-compose down
|
|
|
|
build-firmware:
|
|
name: Build Firmware
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install Docker Compose
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y docker-compose
|
|
|
|
- name: Build and Start Docker Compose
|
|
run: |
|
|
docker-compose up -d
|
|
|
|
- name: Build Firmware
|
|
run: |
|
|
docker-compose exec -T ionizationchamber bash -c "mkdir -p /workspace/build/firmware && cd /workspace/build/firmware && cmake -DCMAKE_TOOLCHAIN_FILE=/workspace/Software/Firmware/sdcc-stm8.cmake -B . -S /workspace/Software/Firmware/ && cmake --build . -j$(nproc)"
|
|
|
|
- name: Copy Firmware Files to Host
|
|
run: |
|
|
docker cp ionizationchamber:/workspace/build/firmware/IonizationChamber.lk .
|
|
docker cp ionizationchamber:/workspace/build/firmware/IonizationChamber.ihx .
|
|
docker cp ionizationchamber:/workspace/build/firmware/IonizationChamber.map .
|
|
|
|
- name: Archive Firmware Build Artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: firmware-build-artifacts
|
|
path: |
|
|
IonizationChamber.lk
|
|
IonizationChamber.ihx
|
|
IonizationChamber.map
|
|
|
|
- name: Clean Up Containers
|
|
run: |
|
|
docker-compose down
|
|
|
|
docs-coverage:
|
|
name: Documentation Coverage
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install Docker Compose
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y docker-compose
|
|
|
|
- name: Build and Start Docker Compose
|
|
run: |
|
|
docker-compose up -d
|
|
|
|
- name: Generate Documentation
|
|
run: |
|
|
docker-compose exec -T ionizationchamber bash -c "python3 -m venv /workspace/venv && source /workspace/venv/bin/activate && cd /workspace/build/ && cmake .. && make docs"
|
|
|
|
- name: Copy Documentation Coverage Report
|
|
run: |
|
|
docker cp ionizationchamber:/workspace/DevOps/BuildArtifacts/DocsCoverage .
|
|
|
|
- name: Archive Documentation Coverage
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: docs-coverage-report
|
|
path: DocsCoverage
|
|
|
|
- name: Clean Up Containers
|
|
run: |
|
|
docker-compose down
|
|
|
|
c-code-coverage:
|
|
name: C Code Coverage
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install Docker Compose
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y docker-compose
|
|
|
|
- name: Build and Start Docker Compose
|
|
run: |
|
|
docker-compose up -d
|
|
|
|
- name: Generate C Code Coverage
|
|
run: |
|
|
docker-compose exec -T ionizationchamber bash -c "mkdir -p /workspace/build/ut && cd /workspace/build/ut && cmake -DCMAKE_BUILD_TYPE=Debug /workspace/Software/Firmware/UnitTest/ && make -j$(nproc) && make run_all_tests && make coverage"
|
|
|
|
- name: Copy C Code Coverage Report
|
|
run: |
|
|
docker cp ionizationchamber:/workspace/DevOps/BuildArtifacts/CCodeCoverage .
|
|
|
|
- name: Archive C Code Coverage
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: c-code-coverage-report
|
|
path: CCodeCoverage
|
|
|
|
- name: Clean Up Containers
|
|
run: |
|
|
docker-compose down
|
|
|
|
run-python-code-coverage:
|
|
name: Run Python Code Coverage
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install Docker Compose
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y docker-compose
|
|
|
|
- name: Build and Start Docker Compose
|
|
run: |
|
|
docker-compose up -d
|
|
|
|
- name: Run Python Code Coverage
|
|
run: |
|
|
docker-compose exec -T ionizationchamber bash -c "source /workspace/venv/bin/activate && cd /workspace/build && cmake .. && make pycoverage"
|
|
|
|
- name: Copy Python Analysis Reports to Host
|
|
run: |
|
|
docker cp ionizationchamber:/workspace/DevOps/BuildArtifacts/PyCodeCoverage .
|
|
|
|
- name: Archive Python Analysis Reports
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: python-code-coverage-reports
|
|
path: PyCodeCoverage
|
|
|
|
- name: Clean Up Containers
|
|
run: |
|
|
docker-compose down
|