diff --git a/.github/workflows/compile_development.yml b/.github/workflows/compile_development.yml index 9b3b68b3..cdd2cdf3 100644 --- a/.github/workflows/compile_development.yml +++ b/.github/workflows/compile_development.yml @@ -92,7 +92,7 @@ jobs: matrix: variant: - opendtufusion-de - - opendtufusion-16MB-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 diff --git a/.github/workflows/compile_release.yml b/.github/workflows/compile_release.yml index 59adf28c..e31e1e55 100644 --- a/.github/workflows/compile_release.yml +++ b/.github/workflows/compile_release.yml @@ -7,34 +7,100 @@ on: - '**.md' # Do no build on *.md changes jobs: - build: - name: Build Environments + check: + name: Check Repository runs-on: ubuntu-latest if: github.repository == 'lumapu/ahoy' && github.ref_name == 'main' continue-on-error: false + steps: + - uses: actions/checkout@v4 + + build-en: + name: Build (EN) + needs: check + runs-on: ubuntu-latest + continue-on-error: false strategy: matrix: variant: + - opendtufusion + - opendtufusion-16MB - esp8266 + - esp8266-all + - esp8266-minimal - esp8266-prometheus - esp8285 - esp32-wroom32 + - esp32-wroom32-minimal - esp32-wroom32-prometheus - - esp32-wroom32-ethernet - esp32-s2-mini - esp32-c3-mini - - opendtufusion - - opendtufusion-ethernet + steps: + - uses: actions/checkout@v4 + - uses: benjlevesque/short-sha@v3.0 + 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: ${{ matrix.variant }} + path: firmware/* + + build-de: + name: Build (DE) + needs: check + runs-on: ubuntu-latest + continue-on-error: false + 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-wroom32-ethernet-de - esp32-s2-mini-de - esp32-c3-mini-de - - opendtufusion-de - - opendtufusion-ethernet-de steps: - uses: actions/checkout@v4 - uses: benjlevesque/short-sha@v3.0 @@ -69,6 +135,11 @@ jobs: - 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 @@ -78,11 +149,10 @@ jobs: name: ${{ matrix.variant }} path: firmware/* - release: name: Create Release + needs: [build-en, build-de] runs-on: ubuntu-latest - needs: [build] continue-on-error: false permissions: contents: write diff --git a/src/platformio.ini b/src/platformio.ini index d539f89c..0639d16f 100644 --- a/src/platformio.ini +++ b/src/platformio.ini @@ -327,6 +327,7 @@ monitor_filters = platform = espressif32@6.7.0 board = esp32-s3-devkitc-1 board_upload.flash_size = 16MB +board_build.partitions = default_16MB.csv upload_protocol = esp-builtin build_flags = ${env:opendtufusion.build_flags} monitor_filters =