0.8.147 #548
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
name: Ahoy Development | |
on: | |
push: | |
branches: development* | |
paths-ignore: | |
- '**.md' # Do no build on *.md changes | |
jobs: | |
check: | |
name: Check Repository | |
runs-on: ubuntu-latest | |
if: github.repository == 'lumapu/ahoy' && github.ref_name == 'development03' | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
build-en: | |
name: Build (EN) | |
needs: check | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
strategy: | |
matrix: | |
variant: | |
- opendtufusion | |
- opendtufusion-16MB | |
- esp8266 | |
- esp8266-all | |
- esp8266-minimal | |
- esp8266-prometheus | |
- esp8285 | |
- esp32-wroom32 | |
- esp32-wroom32-minimal | |
- esp32-wroom32-prometheus | |
- esp32-s2-mini | |
- esp32-c3-mini | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: benjlevesque/[email protected] | |
id: short-sha | |
with: | |
length: 7 | |
- name: Cache Pip | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Cache PlatformIO | |
uses: actions/cache@v4 | |
with: | |
path: ~/.platformio | |
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- name: Install PlatformIO | |
run: | | |
python -m pip install setuptools --upgrade pip | |
pip install --upgrade platformio | |
- name: Run PlatformIO | |
run: pio run -d src -e ${{ matrix.variant }} | |
- name: Compress .elf | |
uses: edgarrc/action-7z@v1 | |
with: | |
args: 7z a -t7z -mx=9 src/.pio/build/${{ matrix.variant }}/firmware.elf.7z ./src/.pio/build/${{ matrix.variant }}/firmware.elf | |
- name: Rename Firmware | |
run: python scripts/getVersion.py ${{ matrix.variant }} >> $GITHUB_OUTPUT | |
- name: Create Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dev-${{ matrix.variant }} | |
path: firmware/* | |
build-de: | |
name: Build (DE) | |
needs: check | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
strategy: | |
matrix: | |
variant: | |
- opendtufusion-de | |
#- opendtufusion-16MB-de #not needed, only the partions.bin is different and can be used from english build | |
- esp8266-de | |
- esp8266-all-de | |
- esp8266-prometheus-de | |
- esp8285-de | |
- esp32-wroom32-de | |
- esp32-wroom32-prometheus-de | |
- esp32-s2-mini-de | |
- esp32-c3-mini-de | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: benjlevesque/[email protected] | |
id: short-sha | |
with: | |
length: 7 | |
- name: Cache Pip | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Cache PlatformIO | |
uses: actions/cache@v4 | |
with: | |
path: ~/.platformio | |
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- name: Install PlatformIO | |
run: | | |
python -m pip install setuptools --upgrade pip | |
pip install --upgrade platformio | |
- name: Run PlatformIO | |
run: pio run -d src -e ${{ matrix.variant }} | |
- name: Compress .elf | |
uses: edgarrc/action-7z@v1 | |
with: | |
args: 7z a -t7z -mx=9 src/.pio/build/${{ matrix.variant }}/firmware.elf.7z ./src/.pio/build/${{ matrix.variant }}/firmware.elf | |
- name: Rename Firmware | |
run: python scripts/getVersion.py ${{ matrix.variant }} >> $GITHUB_OUTPUT | |
- name: Create Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dev-${{ matrix.variant }} | |
path: firmware/* | |
deploy: | |
name: Update Artifacts / Deploy | |
needs: [build-en, build-de] | |
runs-on: ubuntu-latest | |
continue-on-error: false | |
steps: | |
- uses: actions/checkout@v4 | |
#- name: Copy boot_app0.bin | |
# run: cp ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin src/.pio/build/opendtufusion/ota.bin | |
- name: Get Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
merge-multiple: true | |
path: firmware | |
- name: Get Version from code | |
id: version_name | |
run: python scripts/getVersion.py ${{ matrix.variant }} >> $GITHUB_OUTPUT | |
- name: Set Version | |
uses: cschleiden/replace-tokens@v1 | |
with: | |
files: manual/User_Manual.md | |
env: | |
VERSION: ${{ steps.version_name.outputs.name }} | |
- name: Create ESP Web Tools Manifest | |
working-directory: src | |
run: python ../scripts/buildManifest.py | |
- name: Copy install html | |
run: mv scripts/gh-action-dev-build-flash.html firmware/install.html | |
- name: Copy Changes.md | |
run: mv src/CHANGES.md firmware/CHANGES.md | |
- name: Rename firmware directory | |
run: mv firmware ${{ steps.version_name.outputs.name }} | |
- name: delete environment Artifacts | |
uses: geekyeggo/delete-artifact@v4 | |
with: | |
name: dev-* | |
- name: Deploy | |
uses: nogsantos/scp-deploy@master | |
with: | |
src: ${{ steps.version_name.outputs.name }}/ | |
host: ${{ secrets.FW_SSH_HOST }} | |
remote: ${{ secrets.FW_SSH_DIR }}/dev | |
port: ${{ secrets.FW_SSH_PORT }} | |
user: ${{ secrets.FW_SSH_USER }} | |
key: ${{ secrets.FW_SSH_KEY }} | |
- name: Clean elf files (7z compressed) for Artifact | |
run: | | |
rm -f \ | |
${{ steps.version_name.outputs.name }}/*/*.elf.7z | |
- name: Create Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dev-${{ steps.version_name.outputs.name }} | |
path: | | |
${{ steps.version_name.outputs.name }}/* | |
manual/User_Manual.md | |
manual/Getting_Started.md |