automatically updated release notes for mega-20230930 #20
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
# NOTICE the generate-matrix and build are c/p from the build workflow | |
# NOTICE manual deletion following a re-created tag and push will also trigger this | |
# | |
# Checks whether the pushed commit is buildable and creates a release with the provided tag. Only triggered on mega-* tag push | |
# Documentation and distribution files (tools, readme, etc.) are uploaded as .zip files prepared similarly to the build_ESPEasy.sh | |
# Every .bin build artifact is merged in a single .zip file, which is then uploaded as a single release asset | |
name: Release | |
on: | |
push: | |
branches-ignore: '**' | |
tags: 'mega-*' | |
permissions: | |
contents: read | |
jobs: | |
generate-matrix: | |
runs-on: ubuntu-22.04 | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- id: set-matrix | |
run: | | |
pip install platformio | |
python tools/ci/generate-matrix.py | |
build: | |
needs: generate-matrix | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-${{ hashFiles('requirements.txt') }} | |
- uses: actions/cache@v3 | |
if: ${{ contains(matrix.env, 'esp32') }} | |
with: | |
path: ~/.platformio | |
key: ${{ runner.os }}-esp32-${{ hashFiles('platformio*.ini') }} | |
- uses: actions/cache@v3 | |
if: ${{ contains(matrix.env, 'esp8266') }} | |
with: | |
path: ~/.platformio | |
key: ${{ runner.os }}-esp8266-${{ hashFiles('platformio*.ini') }} | |
- name: Dependencies | |
run: | | |
sudo apt install binutils build-essential libffi-dev libgit2-dev | |
pip install -r requirements.txt | |
platformio update | |
- name: Build and archive | |
id: build-and-archive | |
env: | |
CHIP: ${{ matrix.chip }} | |
ENV: ${{ matrix.env }} | |
run: | | |
python tools/ci/build-and-archive.py | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: Binaries | |
path: | | |
bin | |
if-no-files-found: ignore | |
prepare-dist: | |
needs: build | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-docs-${{ hashFiles('docs/requirements.txt') }} | |
- name: Build documentation | |
run: | | |
cd docs | |
sudo apt install imagemagick zip | |
pip install -r requirements.txt | |
make html | |
cd .. | |
zip -r -qq ESPEasy_docs.zip docs/build/* | |
- name: Package utilities | |
run: | | |
cd dist | |
zip -r -qq ../ESPEasy_dist.zip * | |
cd .. | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: Distribution | |
path: | | |
ESPEasy_docs.zip | |
ESPEasy_dist.zip | |
prepare-notes: | |
needs: build | |
runs-on: ubuntu-22.04 | |
outputs: | |
notes: ${{ steps.release-notes.outputs.result }} | |
steps: | |
- id: release-notes | |
uses: actions/github-script@v6 | |
with: | |
result-encoding: string | |
script: | | |
const tagRefObj = await github.rest.git.getRef({ | |
...context.repo, | |
ref: context.ref.replace('refs/', '') | |
}); | |
const tagObj = await github.rest.git.getTag({ | |
...context.repo, | |
tag_sha: tagRefObj.data.object.sha | |
}); | |
return tagObj.data.message; | |
release: | |
permissions: | |
contents: write # for ncipollo/release-action | |
needs: [build, prepare-dist, prepare-notes] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Get current date | |
id: date | |
run: | | |
echo "builddate=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT | |
- uses: actions/download-artifact@v3 | |
with: | |
path: artifacts/ | |
- name: Repackage for release upload | |
run: | | |
ls -R | |
sudo apt install zipmerge zip | |
cd artifacts/Binaries | |
mkdir bin | |
mv *.* bin | |
find . -not -name '*ESP32*' -print | zip -@ ../../ESPEasy_ESP82xx.zip | |
# ESP32 and derived chips | |
# TODO if/when available: ESP32c2 ESP32c6 ESP32h2 | |
find . -name '*ESP32s2*' -print | zip -@ ../../ESPEasy_ESP32s2.zip | |
find . -name '*ESP32c3*' -print | zip -@ ../../ESPEasy_ESP32c3.zip | |
find . -name '*ESP32s3*' -print | zip -@ ../../ESPEasy_ESP32s3.zip | |
find . -name '*ESP32solo1*' -print | zip -@ ../../ESPEasy_ESP32solo1.zip | |
find . -name '*ESP32_*' -print | zip -@ ../../ESPEasy_ESP32.zip | |
cd ../.. | |
mv artifacts/Distribution/ESPEasy_dist* . | |
cp ESPEasy_dist.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP82xx_binaries.zip | |
zip -d ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP82xx_binaries.zip "bin/blank_8MB.bin" | |
mv ESPEasy_dist.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip | |
zip -d ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip "bin/blank_1MB.bin" "bin/blank_2MB.bin" "bin/ESPEasy_2step_UploaderMega_1024.bin" | |
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP82xx_binaries.zip ESPEasy_ESP82xx.zip | |
# TODO if/when available: ESP32c2 ESP32c6 ESP32h2 | |
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s2_binaries.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32s2.zip | |
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c3_binaries.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32c3.zip | |
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s3_binaries.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32s3.zip | |
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32solo1_binaries.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32solo1.zip | |
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32.zip | |
- uses: ncipollo/release-action@v1 | |
with: | |
# Include all separately supported CPU models | |
# TODO if/when available: ESP32c2 ESP32c6 ESP32h2 | |
artifacts: "ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP82xx_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32solo1_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s2_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c3_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s3_binaries.zip,artifacts/Distribution/*.zip" | |
body: ${{ needs.prepare-notes.outputs.notes }} | |
token: ${{ secrets.GITHUB_TOKEN }} |