|
|
@ -1,29 +1,50 @@ |
|
|
|
name: Ahoy Release for ESP8266/ESP32 |
|
|
|
name: Ahoy Release |
|
|
|
|
|
|
|
on: |
|
|
|
push: |
|
|
|
branches: main |
|
|
|
paths: |
|
|
|
- 'src/**' # build only when changes occur here |
|
|
|
- '.github/workflows/compile_release.yml' |
|
|
|
- '!README.md' |
|
|
|
- '!CHANGES.md' |
|
|
|
- '!User_Manual.md' |
|
|
|
paths-ignore: |
|
|
|
- '**.md' # Do no build on *.md changes |
|
|
|
|
|
|
|
jobs: |
|
|
|
build: |
|
|
|
name: Build Environments |
|
|
|
needs: check |
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
|
|
|
if: github.repository == 'lumapu/ahoy' && github.ref_name == 'main' |
|
|
|
continue-on-error: false |
|
|
|
strategy: |
|
|
|
matrix: |
|
|
|
variant: |
|
|
|
- esp8266 |
|
|
|
- esp8266-prometheus |
|
|
|
- esp8285 |
|
|
|
- esp32-wroom32 |
|
|
|
- esp32-wroom32-prometheus |
|
|
|
- esp32-wroom32-ethernet |
|
|
|
- esp32-s2-mini |
|
|
|
- esp32-c3-mini |
|
|
|
- opendtufusion |
|
|
|
- opendtufusion-ethernet |
|
|
|
- esp8266-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@v3 |
|
|
|
with: |
|
|
|
ref: main |
|
|
|
- uses: benjlevesque/short-sha@v2.1 |
|
|
|
- uses: actions/checkout@v4 |
|
|
|
- uses: benjlevesque/short-sha@v3.0 |
|
|
|
id: short-sha |
|
|
|
with: |
|
|
|
length: 7 |
|
|
|
|
|
|
|
- name: Cache Pip |
|
|
|
uses: actions/cache@v3 |
|
|
|
uses: actions/cache@v4 |
|
|
|
with: |
|
|
|
path: ~/.cache/pip |
|
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} |
|
|
@ -31,13 +52,13 @@ jobs: |
|
|
|
${{ runner.os }}-pip- |
|
|
|
|
|
|
|
- name: Cache PlatformIO |
|
|
|
uses: actions/cache@v3 |
|
|
|
uses: actions/cache@v4 |
|
|
|
with: |
|
|
|
path: ~/.platformio |
|
|
|
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} |
|
|
|
|
|
|
|
- name: Setup Python |
|
|
|
uses: actions/setup-python@v4.3.0 |
|
|
|
uses: actions/setup-python@v5 |
|
|
|
with: |
|
|
|
python-version: "3.x" |
|
|
|
|
|
|
@ -47,58 +68,91 @@ jobs: |
|
|
|
pip install --upgrade platformio |
|
|
|
|
|
|
|
- name: Run PlatformIO |
|
|
|
run: pio run -d src --environment esp8266 --environment esp8266-prometheus --environment esp8285 --environment esp32-wroom32 --environment esp32-wroom32-prometheus --environment esp32-wroom32-ethernet --environment esp32-s2-mini --environment esp32-c3-mini --environment opendtufusion --environment opendtufusion-ethernet |
|
|
|
run: pio run -d src -e ${{ matrix.variant }} |
|
|
|
|
|
|
|
- name: Copy boot_app0.bin |
|
|
|
run: cp ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin src/.pio/build/opendtufusion/ota.bin |
|
|
|
- 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/* |
|
|
|
|
|
|
|
- name: Rename Binary files |
|
|
|
id: rename-binary-files |
|
|
|
working-directory: src |
|
|
|
run: python ../scripts/getVersion.py >> $GITHUB_OUTPUT |
|
|
|
|
|
|
|
- name: Create Release |
|
|
|
id: create-release |
|
|
|
uses: actions/create-release@v1 |
|
|
|
release: |
|
|
|
name: Create Release |
|
|
|
runs-on: ubuntu-latest |
|
|
|
needs: [build] |
|
|
|
continue-on-error: false |
|
|
|
permissions: |
|
|
|
contents: write |
|
|
|
|
|
|
|
steps: |
|
|
|
- name: Get Artifacts |
|
|
|
uses: actions/download-artifact@v4 |
|
|
|
with: |
|
|
|
draft: false |
|
|
|
prerelease: false |
|
|
|
release_name: ${{ steps.rename-binary-files.outputs.name }} |
|
|
|
tag_name: ${{ steps.rename-binary-files.outputs.name }} |
|
|
|
body_path: src/CHANGES.md |
|
|
|
env: |
|
|
|
GITHUB_TOKEN: ${{ github.token }} |
|
|
|
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: User_Manual.md |
|
|
|
files: manual/User_Manual.md |
|
|
|
env: |
|
|
|
VERSION: ${{ steps.rename-binary-files.outputs.name }} |
|
|
|
VERSION: ${{ steps.version_name.outputs.name }} |
|
|
|
|
|
|
|
- name: Create Artifact |
|
|
|
run: zip --junk-paths ${{ steps.rename-binary-files.outputs.name }}.zip src/firmware/* User_Manual.md |
|
|
|
- name: Rename firmware directory |
|
|
|
run: mv firmware ${{ steps.version_name.outputs.name }} |
|
|
|
|
|
|
|
- name: Upload Release |
|
|
|
id: upload-release |
|
|
|
uses: actions/upload-release-asset@v1 |
|
|
|
env: |
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
|
|
|
- name: Publish Release |
|
|
|
uses: actions/checkout@v3 |
|
|
|
uses: ncipollo/release-action@v1 |
|
|
|
with: |
|
|
|
artifacts: ${{ steps.version_name.outputs.name }} |
|
|
|
bodyFile: src/CHANGES.md |
|
|
|
commit: "main" |
|
|
|
tag: ${{ steps.rename-binary-files.outputs.name }} |
|
|
|
name: ${{ steps.rename-binary-files.outputs.name }} |
|
|
|
|
|
|
|
|
|
|
|
deploy: |
|
|
|
name: Deploy Environments to fw.ahoydtu.de |
|
|
|
needs: [build] |
|
|
|
runs-on: ubuntu-latest |
|
|
|
continue-on-error: false |
|
|
|
steps: |
|
|
|
- uses: actions/checkout@v4 |
|
|
|
- name: Get Artifacts |
|
|
|
uses: actions/download-artifact@v4 |
|
|
|
with: |
|
|
|
upload_url: ${{ steps.create-release.outputs.upload_url }} |
|
|
|
asset_path: ./${{ steps.rename-binary-files.outputs.name }}.zip |
|
|
|
asset_name: ${{ steps.rename-binary-files.outputs.name }}.zip |
|
|
|
asset_content_type: application/zip |
|
|
|
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: Rename firmware directory |
|
|
|
run: mv src/firmware src/${{ steps.rename-binary-files.outputs.name }} |
|
|
|
run: mv firmware ${{ steps.version_name.outputs.name }} |
|
|
|
|
|
|
|
- name: Deploy |
|
|
|
uses: nogsantos/scp-deploy@master |
|
|
|
with: |
|
|
|
src: src/${{ steps.rename-binary-files.outputs.name }}/ |
|
|
|
src: ${{ steps.version_name.outputs.name }}/ |
|
|
|
host: ${{ secrets.FW_SSH_HOST }} |
|
|
|
remote: ${{ secrets.FW_SSH_DIR }}/release |
|
|
|
remote: ${{ secrets.FW_SSH_DIR }}/dev |
|
|
|
port: ${{ secrets.FW_SSH_PORT }} |
|
|
|
user: ${{ secrets.FW_SSH_USER }} |
|
|
|
key: ${{ secrets.FW_SSH_KEY }} |
|
|
|