update artifact #197
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# matth-x/MicroOcpp | |
# Copyright Matthias Akstaller 2019 - 2024 | |
# MIT License | |
name: documentation | |
on: | |
push: | |
branches: | |
- feature/benchmarks | |
permissions: | |
contents: write | |
jobs: | |
build_firmware_size: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache pip | |
uses: actions/cache@v2 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Cache PlatformIO | |
uses: actions/cache@v2 | |
with: | |
path: ~/.platformio | |
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
- name: Install PlatformIO | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade platformio | |
- name: Run PlatformIO | |
run: pio ci --lib="." --build-dir="${{ github.workspace }}/../build" --keep-build-dir --project-conf="./tests/benchmarks/firmware_size/platformio.ini" -e v16 ./tests/benchmarks/firmware_size/main_v16.cpp | |
- name: Move firmware files # change path to location without parent dir ('..') statement (to make upload-artifact happy) | |
run: mv "${{ github.workspace }}/../build/.pio/build/v16/firmware.elf" "${{ github.workspace }}/firmware_v16.elf" | |
- name: Upload v16 firmware file | |
uses: actions/upload-artifact@v4 | |
with: | |
name: firmware_v16.elf | |
path: "${{ github.workspace }}/firmware_v16.elf" | |
if-no-files-found: error | |
retention-days: 1 | |
fake_artifact: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Create artifact | |
run: echo "fake artifact" > firmware_v16.elf | |
- name: Upload v16 firmware file | |
uses: actions/upload-artifact@v4 | |
with: | |
name: firmware_v16_2.elf | |
path: "${{ github.workspace }}/firmware_v16.elf" | |
if-no-files-found: error | |
retention-days: 1 | |
profile_firmware: | |
needs: build_firmware_size | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get build tools | |
run: | | |
sudo apt update | |
sudo apt install build-essential cmake ninja-build | |
sudo apt -y install gcc-9 g++-9 | |
g++ --version | |
- name: Check out bloaty | |
uses: actions/checkout@v3 | |
with: | |
repository: google/bloaty | |
ref: 379d5305670c00c36a57e608079fd253f13bde63 | |
path: "${{ github.workspace }}/bloaty" | |
submodules: recursive | |
- name: Install bloaty | |
run: | | |
cmake -B "${{ github.workspace }}/bloaty/build" -G Ninja -S "${{ github.workspace }}/bloaty" | |
cmake --build "${{ github.workspace }}/bloaty/build" -j 32 | |
- name: Get v16 firmware file | |
uses: actions/download-artifact@v4 | |
with: | |
name: firmware_v16.elf | |
- name: Run bloaty | |
run: | | |
"${{ github.workspace }}/bloaty/build/bloaty" ./firmware_v16.elf -d compileunits --csv -n 0 > bloaty_v16.csv | |
- name: Upload v16 bloaty report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: bloaty_v16.csv | |
path: bloaty_v16.csv | |
if-no-files-found: error | |
deploy: | |
needs: profile_firmware | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.x | |
- uses: actions/cache@v2 | |
with: | |
key: ${{ github.ref }} | |
path: .cache | |
- name: Install Python dependencies | |
run: pip install pandas mkdocs-material | |
- name: Get v16 bloaty analysis | |
uses: actions/download-artifact@v4 | |
with: | |
name: bloaty_v16.csv | |
path: docs/assets | |
- name: Evaluate and create reports | |
run: python tests/benchmarks/scripts/eval_firmware_size.py | |
- name: Run mkdocs | |
run: mkdocs gh-deploy --force |