Updated version #278
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: Build Releases | |
on: [push] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/pip | |
~/.platformio/.cache | |
key: ${{ runner.os }}-pio | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- name: Install PlatformIO Core | |
run: pip install --upgrade platformio | |
- name: Set environment variables | |
run: echo "VERSION=$(head -1 version)" >> $GITHUB_ENV | |
- name: Check if Git-Tag already exist | |
run: | | |
TAG="v${{ env.VERSION }}" | |
if git show-ref --tags --verify --quiet "refs/tags/${TAG}" && [[ "${TAG}" != *"DEV"* ]]; then | |
echo "Tag ${TAG} already exists" | |
exit 1 | |
else | |
echo "Tag ${TAG} does not exist or is DEV-Branch" | |
fi | |
- name: Check if version file contains linebreak at the end | |
run: | | |
if [ -n "$(tail -c 1 "version")" ]; then | |
echo "The version file has no linebreak at the end" | |
exit 1 | |
fi | |
- name: Update hash in Global properties | |
run: | | |
sed -i -e 's|*GLOBAL_HASH = "\(.*\)";|*GLOBAL_HASH = "'"$(git rev-parse --short HEAD)"'";|g' components/cmd_system/cmd_system.c | |
sed -i -e 's/DEV-VERSION/${{ env.VERSION }}/g' CMakeLists.txt | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install htmlmin esptool | |
- name: Minify HTML files | |
run: python .github/workflows/shrinkHTML.py | |
shell: sh | |
- name: Build ESP32 firmware | |
run: platformio run -e esp32 | |
- name: Build one binary for ESP32 | |
run: | | |
folder=.pio/build/esp32 | |
chip=esp32 | |
mkdir -p release/ota/ESP32/ | |
cp version release/ota/ | |
cp $folder/firmware.bin release/ota/ESP32/firmware.bin | |
mv $folder/firmware.bin $folder/${chip}nat_extended_v${{ env.VERSION }}.bin | |
esptool.py --chip $chip merge_bin -o $folder/${chip}nat_extended_full_v${{ env.VERSION }}.bin --flash_freq keep --flash_size keep 0x1000 $folder/bootloader.bin 0x10000 $folder/${chip}nat_extended_v${{ env.VERSION }}.bin 0x8000 $folder/partitions.bin | |
esptool.py --chip $chip merge_bin -o $folder/${chip}nat_extended_full_v${{ env.VERSION }}.bin --flash_freq keep --flash_size keep 0x1000 $folder/bootloader.bin 0x10000 $folder/${chip}nat_extended_v${{ env.VERSION }}.bin 0x8000 $folder/partitions.bin | |
mkdir -p release | |
esptool.py --chip $chip merge_bin -o $folder/${chip}nat_extended_full_v${{ env.VERSION }}.bin --flash_freq keep --flash_size keep 0x1000 $folder/bootloader.bin 0x10000 $folder/${chip}nat_extended_v${{ env.VERSION }}.bin 0x8000 $folder/partitions.bin | |
mkdir -p release | |
zip -j release/${chip}nat_extended_update_v${{ env.VERSION }}.zip $folder/${chip}nat_extended_v${{ env.VERSION }}.bin | |
zip -j release/${chip}nat_extended_full_v${{ env.VERSION }}.zip $folder/${chip}nat_extended_full_v${{ env.VERSION }}.bin | |
- name: Build ESP32 C3 firmware | |
run: platformio run -e esp32-c3 | |
- name: Build one binary for ESP32 C3 | |
run: | | |
folder=.pio/build/esp32-c3 | |
chip=esp32c3 | |
mkdir -p release/ota/ESP32-C3/ | |
cp $folder/firmware.bin release/ota/ESP32-C3/firmware.bin | |
mv $folder/firmware.bin $folder/${chip}nat_extended_v${{ env.VERSION }}.bin | |
esptool.py --chip $chip merge_bin -o $folder/${chip}nat_extended_full_v${{ env.VERSION }}.bin --flash_freq keep --flash_size keep 0x0 $folder/bootloader.bin 0x10000 $folder/${chip}nat_extended_v${{ env.VERSION }}.bin 0x8000 $folder/partitions.bin | |
mkdir -p release/ | |
zip -j release/${chip}nat_extended_update_v${{ env.VERSION }}.zip $folder/${chip}nat_extended_v${{ env.VERSION }}.bin | |
zip -j release/${chip}nat_extended_full_v${{ env.VERSION }}.zip $folder/${chip}nat_extended_full_v${{ env.VERSION }}.bin | |
- name: Build ESP32 S2 firmware | |
run: platformio run -e esp32-s2 | |
- name: Build one binary for ESP32 S2 | |
run: | | |
folder=.pio/build/esp32-s2 | |
chip=esp32s2 | |
mkdir -p release/ota/ESP32-S2/ | |
cp $folder/firmware.bin release/ota/ESP32-S2/firmware.bin | |
mv $folder/firmware.bin $folder/${chip}nat_extended_v${{ env.VERSION }}.bin | |
esptool.py --chip $chip merge_bin -o $folder/${chip}nat_extended_full_v${{ env.VERSION }}.bin --flash_freq keep --flash_size keep 0x1000 $folder/bootloader.bin 0x10000 $folder/${chip}nat_extended_v${{ env.VERSION }}.bin 0x8000 $folder/partitions.bin | |
mkdir -p release | |
zip -j release/${chip}nat_extended_update_v${{ env.VERSION }}.zip $folder/${chip}nat_extended_v${{ env.VERSION }}.bin | |
zip -j release/${chip}nat_extended_full_v${{ env.VERSION }}.zip $folder/${chip}nat_extended_full_v${{ env.VERSION }}.bin | |
- name: Build ESP32 C6 firmware | |
run: platformio run -e esp32-c6 | |
- name: Build one binary for ESP32 C6 | |
run: | | |
folder=.pio/build/esp32-c6 | |
chip=esp32c6 | |
mkdir -p release/ota/ESP32-C6/ | |
cp $folder/firmware.bin release/ota/ESP32-C6/firmware.bin | |
mv $folder/firmware.bin $folder/${chip}nat_extended_v${{ env.VERSION }}.bin | |
esptool.py --chip $chip merge_bin -o $folder/${chip}nat_extended_full_v${{ env.VERSION }}.bin --flash_freq keep --flash_size keep 0x0 $folder/bootloader.bin 0x10000 $folder/${chip}nat_extended_v${{ env.VERSION }}.bin 0x8000 $folder/partitions.bin | |
mkdir -p release/ | |
zip -j release/${chip}nat_extended_update_v${{ env.VERSION }}.zip $folder/${chip}nat_extended_v${{ env.VERSION }}.bin | |
zip -j release/${chip}nat_extended_full_v${{ env.VERSION }}.zip $folder/${chip}nat_extended_full_v${{ env.VERSION }}.bin | |
- name: Create draft release | |
uses: "marvinpinto/action-automatic-releases@latest" | |
if: github.ref == 'refs/heads/master' | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
prerelease: false | |
draft: true | |
automatic_release_tag: v${{ env.VERSION }} | |
title: v${{ env.VERSION }} | |
files: | | |
release/*.zip | |
- name: Create changelog from version file | |
if: github.ref == 'refs/heads/master' | |
run: tail -n +3 version | sed 's/^/- /' > changelog | |
- name: Set changelog | |
if: github.ref == 'refs/heads/master' | |
uses: ncipollo/release-action@v1 | |
with: | |
allowUpdates: true | |
name: v${{ env.VERSION }} | |
tag: v${{ env.VERSION }} | |
draft: true | |
bodyFile: "changelog" | |
- name: Set dev branch variable | |
if: github.ref == 'refs/heads/dev' | |
run: | | |
echo "RELEASE_BRANCH=releases-staging" >> $GITHUB_ENV | |
- name: Set master branch variable | |
if: github.ref == 'refs/heads/master' | |
run: | | |
echo "RELEASE_BRANCH=releases-production" >> $GITHUB_ENV | |
- name: Deploy to Github Pages | |
if: github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/master' | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
folder: release/ota/ | |
branch: ${{env.RELEASE_BRANCH}} | |