|
| 1 | +# Check build of OpenKNX OAM (merging/building of OpenKNX knxprod for combination of all referenced module versions + build of full releases) |
| 2 | +# SPDX-License-Identifier: AGPL-3.0-only |
| 3 | +# Copyright (C) 2024-2025 Cornelius Koepp |
| 4 | + |
| 5 | +name:openknx-oam-check |
| 6 | +run-name:Check OpenKNX OAM Build |
| 7 | + |
| 8 | +on:[push] |
| 9 | + |
| 10 | +jobs: |
| 11 | +build: |
| 12 | +runs-on:ubuntu-latest |
| 13 | +env: |
| 14 | +KNXPROD_PREFIX:StateEngine |
| 15 | +strategy: |
| 16 | +fail-fast:false |
| 17 | +matrix: |
| 18 | +target:["DFA16-Release", ""] |
| 19 | +restore_branch:[false, true] |
| 20 | +steps: |
| 21 | + -uses:actions/checkout@v4 |
| 22 | + |
| 23 | + -name:Restore Project |
| 24 | +shell:pwsh |
| 25 | +run:| |
| 26 | + cd restore |
| 27 | + if (${{ matrix.restore_branch }}) { |
| 28 | + ./Restore-Dependencies-Branch.ps1 |
| 29 | + } else { |
| 30 | + ./Restore-Dependencies.ps1 |
| 31 | + } |
| 32 | +
|
| 33 | + -name:Download OpenKNXproducer 3.7.14.0 and Verify |
| 34 | +run:| |
| 35 | + mkdir OpenKNXproducer |
| 36 | + cd OpenKNXproducer |
| 37 | + echo '40e30f59deb949704c3ec21e26b3fceb18b418a46443d904383bf4fd99d56461d1d8c39fac756de09079004469d1e868ce33c50768dbe1e3314b304a6fc20c2f *OpenKNXproducer-3.7.14.0.zip' > OpenKNXproducer.checksum |
| 38 | + wget -q https://github.com/OpenKNX/OpenKNXproducer/releases/download/v3.7.14/OpenKNXproducer-3.7.14.0.zip |
| 39 | + sha512sum OpenKNXproducer-3.7.14.0.zip |
| 40 | + sha512sum -c OpenKNXproducer.checksum |
| 41 | + -name:Unzip OpenKNXproducer and Make Executable |
| 42 | +run:| |
| 43 | + cd OpenKNXproducer |
| 44 | + unzip OpenKNXproducer-3.7.14.0.zip || test -f tools/Linux/OpenKNXproducer |
| 45 | + chmod u+x tools/Linux/OpenKNXproducer |
| 46 | + -name:Check OpenKNXproducer |
| 47 | +run:OpenKNXproducer/tools/Linux/OpenKNXproducer version || echo Ignore OpenKNXproducer always returning 1... |
| 48 | + |
| 49 | + -name:Install OpenKNXproducer |
| 50 | +run:cp -av OpenKNXproducer/tools/Linux/OpenKNXproducer /usr/local/bin/OpenKNXproducer |
| 51 | + |
| 52 | + -name:Create knxprod |
| 53 | +run:OpenKNXproducer create --Debug -h include/knxprod.h src/${KNXPROD_PREFIX}${{ matrix.target != '' && format('-{0}', matrix.target) || '' }} |
| 54 | + |
| 55 | + -name:Install Python |
| 56 | +uses:actions/setup-python@v5 |
| 57 | +with: |
| 58 | +python-version:'3.8' |
| 59 | + |
| 60 | + -name:Install PlatformIO |
| 61 | +run:| |
| 62 | + python -m pip install --upgrade pip |
| 63 | + pip install virtualenv |
| 64 | + virtualenv ~/.platformio/penv |
| 65 | + source ~/.platformio/penv/bin/activate |
| 66 | + pip install platformio |
| 67 | +
|
| 68 | + -name:OpenKNX Release Build |
| 69 | +run:pwsh ./scripts/Build-Release.ps1 ${{ matrix.target }} |
| 70 | + |
| 71 | + -name:Show Changed Files |
| 72 | +run:git diff |