Verbesserung des AutoBuilds
build_release.yaml / Build heltec_wifi_lora_32_V3_sailplane (push) Failing after 13s
build_release.yaml / Build heltec_wifi_lora_32_V3_winde (push) Failing after 13s
build_release.yaml / Release (push) Skipped

This commit is contained in:
FCS committed 2026-08-28 18:26:20 +02:00
1 parent 0d2ff764ea
commit 8ef86500db
1 file changed
+67 -23
+67 -23
View File
@@ -1,46 +1,78 @@
on:
push:
tags:
- "*"
- "v*"
concurrency:
group: release-${{ gitea.ref }}
cancel-in-progress: true
jobs:
build:
env:
RUNNER_TOOL_CACHE: /toolcache
PLATFORMIO_BUILD_CACHE_DIR: ~/.platformio/.build_cache
PLATFORMIO_CACHE_DIR: ~/.platformio/.cachedir
name: Build
name: Build ${{ matrix.environment }}
strategy:
fail-fast: false
matrix:
environment:
- heltec_wifi_lora_32_V3_sailplane
- heltec_wifi_lora_32_V3_winde
runs-on: ubuntu-latest
container: catthehacker/ubuntu:act-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Cache
uses: actions/cache@v4
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: |
~/.cache/pip
~/.platformio/.cache
~/.platformio/.build_cache
~/.platformio/.cachedir
key: ${{ runner.os }}-pio
key: ${{ runner.os }}-pio-6.1.18-${{ hashFiles('platformio.ini', 'extra_script.py') }}
restore-keys: |
${{ runner.os }}-pio-6.1.18-
${{ runner.os }}-pio-
- name: Set up python
uses: actions/setup-python@v5
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: "3.14.0"
architecture: "x64"
- name: Install PlatformIO
run: python3 -m pip install platformio==6.1.18
- name: Build firmwares
run: FIRMWARE_VERSION=${{gitea.ref_name}} platformio run
- name: Archive
uses: christopherhx/gitea-upload-artifact@v4
- name: Validate version and required files
env:
TAG_NAME: ${{ gitea.ref_name }}
run: |
VERSION="${TAG_NAME#v}"
grep -qE "^## (v)?${VERSION} " CHANGELOG.md
test -s LICENSE
test -s THIRD_PARTY_NOTICES.md
- name: Static analysis
run: python3 -m platformio check --environment "${{ matrix.environment }}"
- name: Build firmware
env:
FIRMWARE_VERSION: ${{ gitea.ref_name }}
run: python3 -m platformio run --environment "${{ matrix.environment }}"
- name: Verify firmware and create checksum
run: |
test -n "$(find ".pio/build/${{ matrix.environment }}" -maxdepth 1 -type f -name 'firmware_*.bin' -print -quit)
sha256sum ".pio/build/${{ matrix.environment }}"/firmware_*.bin > "firmware-${{ matrix.environment }}.sha256"
- name: Archive firmware
uses: christopherhx/gitea-upload-artifact@62ac910c5d3dfa85c7cb2df15afe2e342b2407c2 # v4
with:
name: firmware
path: .pio/build/*/firmware_*.bin
name: firmware-${{ matrix.environment }}
path: |
.pio/build/${{ matrix.environment }}/firmware_*.bin
firmware-${{ matrix.environment }}.sha256
retention-days: 1
release:
name: Release
# if: startsWith(github.event.ref, 'refs/tags/v')
if: startsWith(gitea.ref, 'refs/tags/v')
needs: build
permissions:
contents: write
@@ -48,17 +80,29 @@ jobs:
container: catthehacker/ubuntu:act-latest
steps:
- name: Checkout repo for CHANGELOG
uses: actions/checkout@v4
- name: Download artifacts
uses: christopherhx/gitea-download-artifact@v4
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Download Sailplane artifact
uses: christopherhx/gitea-download-artifact@75635f32b4c1c41c4b3d64e8f85210112ed4c9c7 # v4
with:
name: firmware
path: firmware
# - name: Display structure of downloaded files
# run: ls -R
- name: release
uses: akkuman/gitea-release-action@v1
name: firmware-heltec_wifi_lora_32_V3_sailplane
path: firmware/sailplane
- name: Download Winde artifact
uses: christopherhx/gitea-download-artifact@75635f32b4c1c41c4b3d64e8f85210112ed4c9c7 # v4
with:
name: firmware-heltec_wifi_lora_32_V3_winde
path: firmware/winde
- name: Verify release assets
run: |
test -n "$(find firmware -type f -name 'firmware_*.bin' -print -quit)"
test -n "$(find firmware -type f -name '*.sha256' -print -quit)"
test -s LICENSE
test -s THIRD_PARTY_NOTICES.md
- name: Create release
uses: akkuman/gitea-release-action@5a83c90484ef4355121df5eb60558c8ce66e81ac # v1
with:
files: |-
**/firmware_*.bin
firmware/**/*.bin
firmware/**/*.sha256
LICENSE
THIRD_PARTY_NOTICES.md
body_path: "CHANGELOG.md"