Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
bc875e6
feat(tx15): support for KCX BT audio (#6777)
3djc Nov 30, 2025
13b849d
fix(pa01): tests failing due to missing images (#6838)
philmoz Nov 30, 2025
c23d702
chore: bump LVGL again
pfeerick Nov 30, 2025
75a9f14
fix(color): various minor UI issues (#6840)
philmoz Dec 1, 2025
d51c2e7
fix(color): Lua LVGL page layout not always correct when using flex l…
philmoz Dec 1, 2025
25e2d50
fix(color): top level quick menu items not dimmed when sub menu selec…
philmoz Dec 2, 2025
9260181
fix: FR translation not compiling (#6854)
3djc Dec 5, 2025
8b9f94e
chore: update (CN) and (TW) translations (#6851)
zyren Dec 5, 2025
2e14fb4
fix(pa01): occasional Read/Write Failures on SD Card​ (#6849)
sneone Dec 5, 2025
1280140
fix(color): rotary encoder may not work after editing a telemetry sen…
philmoz Dec 5, 2025
86b51fd
fix(pa01): SD storage hangs after copy a large file (#6783)
richardclli Dec 5, 2025
cf5ab82
fix(afhds3): modify RF power related issues (#6831)
sneone Dec 5, 2025
b57f735
chore(color): improvements to Lua API (#6846)
philmoz Dec 5, 2025
af814bd
chore(ci): branch filters and cleanup (#6856)
pfeerick Dec 5, 2025
ade7b27
fix(pxx1): upstream telemetry buffer alignment (#6842)
raphaelcoeffic Dec 5, 2025
d2333be
chore: update fonts, cfn strings (#6857)
pfeerick Dec 5, 2025
7147cb0
chore(color): maintain 3.0 setting for key shortcuts and favorites (#…
philmoz Nov 28, 2025
7ec8b39
chore(cpn): do not warn when reading v3.0 models and settings on v2.1…
elecpower Dec 6, 2025
ed17e4e
chore(cpn): move SemanticVersion to own code files (#6844)
elecpower Dec 6, 2025
ff699d6
feat(lua): add getSwitchInfo for detecting customisable switches and …
3djc Dec 6, 2025
9fa9620
feat(cpn): make it possible to use same scale in Log Viewer graph (#6…
varajan Dec 7, 2025
18c762c
fix(radio): radio settings may be incorrect after changes made in sto…
philmoz Dec 12, 2025
36eb888
chore(ci): bump to MacOS 14 for Companion builds (#6863)
pfeerick Dec 12, 2025
a9b4d6b
fix(cpn): adjust maximum count of top bar widgets for wider screens (…
philmoz Dec 12, 2025
608b37f
fix(cpn): failure to load radio.yml file if quick menu favorites conf…
philmoz Dec 12, 2025
2d1cf8e
fix(color): number edit control does not size properly when width set…
philmoz Dec 12, 2025
fb53b36
fix(cpn): crash when creating a new model on Windows (#6869)
philmoz Dec 13, 2025
781a5a7
fix(color): ensure backlight ON & OFF sliders always visible (#6865)
philmoz Dec 13, 2025
f917406
fix(cpn): t15pro libsim startup (#6873)
elecpower Dec 13, 2025
28c7f53
chore(cpn): improve getFirstPosValueIndex performance (#6872)
elecpower Dec 13, 2025
0f38688
fix: display of mixer max time (#6880)
3djc Dec 17, 2025
6b75d51
fix(lua): event handling may not work when using the Lua 'page' objec…
philmoz Dec 17, 2025
3a21dac
chore(gh): add 2.11.4 to bug reporter
pfeerick Dec 18, 2025
d0bff67
chore(cpn): detect if should use x86_64 or arm64 linuxdeploy appimage…
pfeerick Dec 19, 2025
2fc9171
feat: add 'unplug USB' message to CLI trigger_watchdog_reset (#6888)
3djc Dec 19, 2025
f77a791
fix(color): deleting last screen may not update the UI and corrupt mo…
philmoz Dec 19, 2025
c795b76
fix(color): radio starts with very low LCD brightness level (#6883)
philmoz Dec 19, 2025
2ec48d2
feat(pa01): add long-press power-on and improve charging indication (…
sneone Dec 20, 2025
f5b434c
chore(doc): change from GitPod (now ONA) to GitHub Codespaces (#6706)
pfeerick Dec 20, 2025
3fc6dcd
chore(doc): README formatting and fix dead links
pfeerick Dec 21, 2025
c637583
chore(cpn): update translations
pfeerick Dec 21, 2025
9725c94
fix(color): codename spacing
pfeerick Dec 21, 2025
41c08b8
fix(cpn): ModelData usage due to introduction of non-trivial data typ…
elecpower Dec 22, 2025
52a64cc
fix(cpn): paste models crashing on Windows (#6892)
elecpower Dec 22, 2025
ef638cc
fix: make sure debug build bootloader always handles USB (#6900)
3djc Dec 23, 2025
1bae794
fix(cpn): show correct icon on Linux when using Gnome (#6837)
agnauck Dec 26, 2025
c34b9bb
fix(cpn): enable flash firmware dialog load button when radio connect…
elecpower Dec 26, 2025
5f37969
fix(cpn): logical switch global variable unit and precision (#6906)
elecpower Dec 26, 2025
e52a2e2
fix(color): radio may crash if model yaml file does not contain any s…
philmoz Jan 1, 2026
a5c93c3
fix(radio): disable gyro in USB storage mode (#6917)
3djc Jan 1, 2026
2c8a458
chore(color): leave compressed bitmap data in flash memory (#6921)
philmoz Jan 1, 2026
47db564
chore(color): use static memory buffer for LVGL (#6922)
philmoz Jan 2, 2026
48c41dd
fix(x7): incorrect GPIO for SPort power pin (#6929)
pfeerick Jan 2, 2026
e43b776
fix(color): audio does not play for switch and throttle warnings (#6934)
philmoz Jan 3, 2026
26e40b2
fix(fw): check for errors when saving screenshots, invert on inverted…
philmoz Jan 3, 2026
900ce63
chore: update SE 🇸🇪 translations (#6928)
ulfhedlund Jan 3, 2026
d96ddbb
fix(color): Lua scripts do not see selected language when using ALL_L…
philmoz Jan 3, 2026
586a567
chore(color): improve TRACE error messages for image file handling (#…
philmoz Jan 4, 2026
e80406b
feat: simple global control for backlight/brightness and volume (#6684)
philmoz Jan 4, 2026
6bc1fea
chore(fw): update lvgl and fix build warnings (#6951)
philmoz Jan 5, 2026
55d0455
fix(color): don't show 'RTN to exit' message when USB connected for U…
philmoz Jan 5, 2026
a9f86dc
chore: common led driver (#6927)
3djc Jan 5, 2026
fd39dc1
fix(color): simulator may crash or freeze when RF module is set to MP…
philmoz Jan 5, 2026
9037285
fix(color): radio Lua override settings for customisable switches not…
philmoz Jan 5, 2026
0d0e733
chore: resolve compiler warnings and cleanup code (#6952)
philmoz Jan 6, 2026
24029ff
chore: refresh MPM defs to 1.3.4.31 (#6515)
pfeerick Jan 6, 2026
495373d
fix(color): back button may not be visible on Lua script 'page' (#6956)
philmoz Jan 7, 2026
5ac8652
fix(color): lvgl.build() function not returning table of named object…
philmoz Jan 7, 2026
83a253d
fix(st16): mutex usage while FreeRTOS not running prevented firmware …
gagarinlg Jan 7, 2026
a3ccc87
feat(tx15): allow for internal GPS (#6962)
3djc Jan 8, 2026
4f90a5e
feat: add a separate setting for selecting 'text language' when ALL_L…
philmoz Jan 8, 2026
e1b1631
fix: ensure ws2812 DMA transfer is completed before disabling channel…
3djc Jan 8, 2026
82025f3
fix(cpn): add validation check after pasting models (#6966)
elecpower Jan 10, 2026
02e4f9b
fix(color): Lua widgets may not update when quick menu is open (#6967)
philmoz Jan 10, 2026
32208a7
chore(color): remove redundant layout, correct layout formatting, add…
pfeerick Jan 10, 2026
10440e0
fix(cpn): range check initial GV own value (#6972)
elecpower Jan 10, 2026
a1d1c28
feat(cpn): allow simulator standalone on Linux (#6898)
pfeerick Jan 10, 2026
f2a357c
fix: EM when selecting External RF mode PPM (#6909)
mha1 Jan 10, 2026
c20e29e
fix(color): layout for Source field on input edit page when telemetry…
philmoz Jan 10, 2026
d4f1001
fix(sim): add txCompleted for libsimulator (#6975)
pfeerick Jan 10, 2026
01c53ca
fix(f4): re-enable pre-fetch, instruction and data cache (#6979)
raphaelcoeffic Jan 10, 2026
4e9bf31
fix(cmake): honor parallel limits for custom targets (#6976)
pfeerick Jan 10, 2026
0b68362
fix(cpn): telemetry simulation CRSF protocol VSpd UI properties (#6981)
elecpower Jan 11, 2026
6d0bac4
fix(color): widgets may not use all available space on some radios (#…
philmoz Jan 11, 2026
9e97161
fix(cpn): telemetry simulator fonts (#6987)
elecpower Jan 14, 2026
58b6d42
fix(bw): input trim display is incorrect on some radios (#6984)
philmoz Jan 14, 2026
9ecd943
chore: update QT_VERSION from 6.9.0 to 6.9.3 (#6940)
pfeerick Jan 15, 2026
049d7d5
fix: always set serial port (#6990)
3djc Jan 15, 2026
1ef26b9
fix(color): pressing a key may cause unnecessary page reload (#6996)
philmoz Jan 20, 2026
b9370af
fix(color): subtrim value on Outputs page not updated when copying al…
philmoz Jan 20, 2026
35f943e
fix(color): images may not load in Windows simulator (#7010)
philmoz Jan 20, 2026
a7f2e61
chore(dsmp): separate DSMP and DSM2, cleanup code, add DSMP status di…
pfeerick Jan 20, 2026
ca21f02
fix(afhds3): incorrect identification of module for RF power adjustme…
sneone Jan 20, 2026
b0ecde2
chore(color): cleanup UI code (#6989)
philmoz Jan 21, 2026
a7f0bac
chore(color): conversion helper tool and file cleanup (#6781)
JimB40 Jan 21, 2026
2cbf372
feat(cpn): add Express LRS script to update options (#6974)
elecpower Jan 21, 2026
d3495f7
fix(color): key shortcuts should not be active on 'Keys' debug page (…
philmoz Jan 22, 2026
dbc37c3
fix(crsf): assign GPS Alt unique name rather than share Baro Alt (#6995)
Allain18 Jan 22, 2026
5b5cf1d
fix(telemetry): don't override protocol defined distance and precisio…
mha1 Jan 22, 2026
b1f1a85
chore: Reset Session, not "Flight" (#6897)
pfeerick Jan 22, 2026
6901c41
fix(color): typo in bm800_masks path for 800x480 (#7019)
3djc Jan 22, 2026
fbf9660
fix(libsimu): move Menu wrapper methods to fix Windows build (#7015)
pfeerick Jan 23, 2026
87b2788
feat(cpn): add "use saved settings" option to application and profile…
elecpower Jan 24, 2026
3573a80
fix(cpn): logical switch global variable compare range (#7007)
elecpower Jan 25, 2026
06509ac
fix(cpn): special function adjust global variable ensure value within…
elecpower Jan 25, 2026
61ce1a2
fix(firmware): global variable value and range may not be correct (#7…
philmoz Jan 25, 2026
5394e84
chore(cpn): add warning message to global variables settings edit tab…
elecpower Jan 25, 2026
be496b6
feat: add support for RadioMaster TX16S MK3 (#7017)
3djc Jan 25, 2026
0ee753d
fix(cpn): simulator screen size is wrong for some color radios (#7029)
philmoz Jan 25, 2026
ae4d747
feat(color): show ambient light sensor on analog debug pages (#7030)
philmoz Jan 26, 2026
c21f241
fix(h7): UF2 bootloader unable to flash (#6985)
3djc Jan 27, 2026
527ec89
fix(scripts): remove i386 dependencies and fix aqt location in setup_…
adelton Jan 27, 2026
0087e25
fix(firmware): potential crash when using multi protocol module. (#7039)
philmoz Jan 27, 2026
6b1cd88
fix(f4): limit CRSF external module speed to 3.75Mbps (#6923)
3djc Jan 28, 2026
4a84ddb
chore: preserve external COMMON_OPTIONS for non-Ninja builds (#7041)
adelton Jan 28, 2026
4db84e1
feat(cpn): update application display name for MacOS (#7033)
pfeerick Jan 29, 2026
71305d5
fix(color): widget background function called when one-time script is…
philmoz Jan 29, 2026
2579bc6
chore: store more hardware settings in hwdef JSON files (#7031)
philmoz Jan 29, 2026
9a44335
chore(color): implement publish/subscribe messaging to simplify code …
philmoz Jan 29, 2026
f5da4b8
chore: TX16S MK3, not TX16SMK3
pfeerick Jan 29, 2026
7f9bb42
fix(color): built in widgets may crash when switching full screen mod…
philmoz Jan 30, 2026
729e0c6
chore(ci): add release drafter, update nightly release action (#7045)
pfeerick Jan 30, 2026
3520ccf
chore(ci): make release-drafter action summary more informative
pfeerick Jan 30, 2026
5be7a94
fix: formatting of some handset names (#7046)
pfeerick Jan 30, 2026
7e526fe
ci: tweak headings for the release notes, fix labels and scopes (#7047)
pfeerick Jan 30, 2026
73a13bd
fix(bw): cannot select channel for override Special Function (#7052)
philmoz Jan 31, 2026
7ebfb48
fix(ci): incorrect configuration tag for changelog generator (#7054)
pfeerick Jan 31, 2026
99013f7
fix(color): rename 6x1 layout for consistency and add to Companion (#…
philmoz Jan 31, 2026
1138081
ci: use hybrid changelog mode to support direct commits (#7057)
pfeerick Jan 31, 2026
71f0546
ci: use changelog-builder v6
pfeerick Feb 1, 2026
07c767a
ci: release-drafter should look for all workflow runs (#7060)
pfeerick Feb 1, 2026
de5f4eb
revert(color): saving screenshot to PNG does not work reliably (#7069)
philmoz Feb 6, 2026
e4fc09b
chore(cpn): move capabilities from firmware to boards, remove unused …
elecpower Feb 6, 2026
539f722
chore(cpn): remove redundant macro and unused fields (#7071)
elecpower Feb 7, 2026
dd931bc
feat(lua): add 'edited' callback to 'numberEdit' control for LVGL Lua…
philmoz Feb 8, 2026
cdd5fd5
fix(color): label at the top & bottom of the page of Lua scripts may …
philmoz Feb 8, 2026
ecad111
feat(lua): allow setting and getting a switch pre start warning statu…
3djc Feb 8, 2026
2da6a5a
fix(cpn): simulator crash if attempts to play bye.wav on exit (#7085)
philmoz Feb 8, 2026
2661747
fix(cpn): cannot select correct script file for 'Lua Script' SF/GF (#…
philmoz Feb 8, 2026
0a99926
ci: updates to release-drafter and nightly actions, use git-cliff for…
pfeerick Feb 10, 2026
1061459
fix: remove invalid V12 target
pfeerick Feb 10, 2026
06ae9c6
fix(cpn): missing sources when reading models and settings (#7089)
elecpower Feb 10, 2026
f29997b
fix(gx12): some customisable switches (SA/SD) set to NONE when updati…
philmoz Feb 16, 2026
1c53af1
feat(color): add 'Last channel' option to 'Outputs' widget (#7098)
philmoz Feb 16, 2026
e13800e
feat(lua): add 'borderPad' property for LVGL Lua script container obj…
philmoz Feb 16, 2026
5e51969
fix(color): input list page may not update correctly when an input li…
philmoz Feb 16, 2026
142911f
fix(cpn): custom switches in switch and function lists (#7100)
elecpower Feb 16, 2026
017006c
chore(cpn): remove magic numbers and align values with firmware (#7102)
philmoz Feb 16, 2026
7fcdfe5
feat(radio): bluetooth audio KCX mod support for TX16S MK3 (#7056)
3djc Feb 16, 2026
f9e744c
chore(cpn): update Danish 🇩🇰 translations (#7078)
HThuren Feb 16, 2026
0df8d86
chore(radio): update Danish 🇩🇰 translations (#7092)
HThuren Feb 16, 2026
2e609d8
fix(color): play startup 'hello' audio before Lua widgets (#7096)
philmoz Feb 18, 2026
26dae70
fix(bw): cannot edit colors for customizable switch LEDs (#7106)
philmoz Feb 18, 2026
e5d2dc5
fix(h750): memory timings (#7042)
3djc Feb 18, 2026
80e26da
fix(color): settings for 'Outputs' widget incorrect with older models…
philmoz Feb 18, 2026
fe942df
fix(color): PAGE key navigation in quick menu does not activate selec…
philmoz Feb 20, 2026
bcb154c
feat(firmware): add confirmation popup when deleting input or mix lin…
philmoz Feb 20, 2026
044c2a0
feat(color): key shortcuts and quick menu favorites can be set to run…
philmoz Feb 20, 2026
653a201
fix(color): widget Lua 'update' function may give unexpected error (#…
philmoz Feb 21, 2026
4a8ed1a
fix(firmware): radio may crash after editing a number or text field i…
philmoz Feb 22, 2026
e301949
fix(gx12): periodically read IO expander in mixer (#7105)
3djc Feb 22, 2026
04d8027
fix(gx12): switch warning screen not detecting switch movement (#7121)
3djc Feb 22, 2026
cad4de7
fix(gx12): customisable switch startup/shutdown led animation (#7120)
3djc Feb 22, 2026
6beef56
ci: install git-cliff
pfeerick Feb 23, 2026
c76d9aa
ci: update git-cliff config, fix release-drafter changelog
pfeerick Feb 24, 2026
61971bc
chore(gx12): remove compiler warning (#7125)
3djc Feb 24, 2026
009518a
fix(color): mixed case for "Manage Models" page heading (#7130)
philmoz Feb 26, 2026
b3836d5
fix(color): telemetry sensor settings may not be saved to model YAML …
philmoz Feb 26, 2026
363a6e4
cpn: telemetry simulator UX refinements
JimB40 Mar 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 6 additions & 3 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,17 @@
{
"name": "edgetx-dev",
"image": "ghcr.io/edgetx/edgetx-dev:latest",
"runArgs": [ "--ipc=host"],

"runArgs": [
"--ipc=host"
],
// Add the IDs of extensions you want installed when the container is created.
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cpptools"
]
}
}
},
// Post-create command to set up the environment
"postCreateCommand": "git submodule update --init --recursive && mkdir -p build && echo 'EdgeTX development environment ready!'"
}
9 changes: 6 additions & 3 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ body:
label: Version
description: What version of EdgeTX software are you running?
options:
- 2.12.0-RC
- 2.11.4
- 2.11.3
- 2.11.2
- 2.11.1
Expand Down Expand Up @@ -88,7 +90,7 @@ body:
- iFlight Commando8
- Fatfish F16
- Flysky EL18
- Flysky NB4+
- Flysky NB4+
- Flysky NV14
- Flysky PA01
- Flysky PL18/PL18EV
Expand All @@ -104,13 +106,13 @@ body:
- FrSky X10 Express / X10S Express (ACCESS)
- FrSky X12
- FrSky X-Lite / S / Pro
- HelloRadioSky V12
- HelloRadioSky V12
- HelloRadioSky V14
- HelloRadioSky V16
- Jumper T12
- Jumper T14
- Jumper T15
- Jumper T15Pro
- Jumper T15 Pro
- Jumper T16
- Jumper T18
- Jumper T20/T20S
Expand All @@ -126,6 +128,7 @@ body:
- RadioMaster TX12 / TX12MK2
- RadioMaster TX15
- RadioMaster TX16S / TX16SMK2
- RadioMaster TX16 SMK3
- RadioMaster Zorro
- Other (Please specify below)
validations:
Expand Down
12 changes: 11 additions & 1 deletion .github/workflows/build_fw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
name: Run tests and package firmware
on:
push:
branches:
- 'main'
- '[0-9]+.[0-9]+'
tags:
- v*
paths: &trigger-paths
- '.github/workflows/build_fw.yml'
- 'cmake/**'
Expand All @@ -10,8 +15,10 @@ on:
- '.gitmodules'
- 'CMakeLists.txt'
pull_request:
branches:
- 'main'
- '[0-9]+.[0-9]+'
paths: *trigger-paths
workflow_dispatch:

jobs:
test:
Expand All @@ -26,6 +33,7 @@ jobs:
- x9dp2019
- tx15
- tx16s
- tx16smk3
- nv14
- el18
- pl18
Expand All @@ -47,6 +55,7 @@ jobs:
- nb4p
- st16
- t15pro
- pa01
container:
image: ghcr.io/edgetx/edgetx-dev:latest
volumes:
Expand Down Expand Up @@ -87,6 +96,7 @@ jobs:
- tx12mk2;boxer;gx12
- tx15
- tx16s
- tx16smk3
- f16
- v12;v14;v16
- x10;x10express
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/linux_cpn.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,20 @@ name: Linux Companion

on:
push:
branches:
- 'main'
- '[0-9]+.[0-9]+'
tags:
- v*
paths: &trigger-paths
- '.github/workflows/linux_cpn.yml'
- 'companion/**'
- 'tools/build-companion.sh'

pull_request:
branches:
- 'main'
- '[0-9]+.[0-9]+'
paths: *trigger-paths

workflow_dispatch:
Expand Down
14 changes: 11 additions & 3 deletions .github/workflows/macosx_cpn.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,40 @@ name: MacOSX Companion

on:
push:
branches:
- 'main'
- '[0-9]+.[0-9]+'
tags:
- v*
paths: &trigger-paths
- '.github/workflows/macosx_cpn.yml'
- 'companion/**'
- 'tools/build-companion.sh'

pull_request:
branches:
- 'main'
- '[0-9]+.[0-9]+'
paths: *trigger-paths

workflow_dispatch:

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
QT_VERSION: "6.9.0"
QT_VERSION: "6.9.3"

jobs:
build:
runs-on: macos-13
runs-on: macos-15-intel
if: |
github.event_name != 'pull_request' ||
!contains(github.event.pull_request.labels.*.name, 'ci: skip-cpn-macos')
steps:
- name: Select XCode version
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '14.1.0'
xcode-version: '16.0'

- name: Check out the repo
uses: actions/checkout@v4
Expand Down
61 changes: 56 additions & 5 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
- t20;t20v2;t14
- tx12mk2;boxer;gx12
- tx16s
- tx16smk3
- f16
- v16
- x10;x10express
Expand Down Expand Up @@ -71,7 +72,14 @@ jobs:
name: Deploy release
runs-on: ubuntu-latest
needs: build
permissions:
contents: write
steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
fetch-depth: 0 # Need full history for changelog

- name: Download artifacts
uses: actions/download-artifact@v4
with:
Expand All @@ -80,18 +88,61 @@ jobs:
merge-multiple: true

- name: Compose release filename
run: echo "release_filename=edgetx-firmware-nightly-${GITHUB_SHA::8}.zip" >> $GITHUB_ENV
run: |
echo "release_filename=edgetx-firmware-nightly-${GITHUB_SHA::8}.zip" >> $GITHUB_ENV
echo "build_date=$(date -u +'%Y-%m-%d %H:%M:%S UTC')" >> $GITHUB_ENV
echo "old_nightly_sha=$(git rev-parse nightly)" >> $GITHUB_ENV

- name: Zip release file
uses: montudor/action-zip@v1
with:
args: zip -qq -j -r ${{ env.release_filename }} ./edgetx-firmware-nightly

- name: Generate changelog
id: changelog
uses: orhun/git-cliff-action@v4
with:
config: cliff.toml
args: --verbose --strip all nightly..HEAD
env:
OUTPUT: CHANGELOG.md

- name: Update nightly tag
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git tag -f nightly
git push -f origin nightly

- name: Delete previous nightly release
run: |
# Delete the existing nightly release to avoid accumulating assets
gh release delete nightly --yes || true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Deploy nightly release
uses: crowbarmaster/GH-Automatic-Releases@latest
uses: softprops/action-gh-release@v2
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: 'nightly'
tag_name: nightly
prerelease: true
name: "Nightly Build"
body: |
## Automated Nightly Build

**Commit:** ${{ github.sha }}
**Built:** ${{ env.build_date }}

This is an automated nightly build of EdgeTX firmware. These builds are for testing purposes and may contain bugs. Please be sure to report any issues you encounter!

### Installation
Download `${{ env.release_filename }}` and extract the firmware file for your radio model, or use [EdgeTX Buddy](https://buddy.edgetx.org/#/flash?version=nightly&source=releases&filters=includePrereleases) with the "Include pre-releases" Filter option enabled so you can select the "Nightly" version.

## Changes since last nightly build

${{ steps.changelog.outputs.content }}

---
**Full Diff:** https://github.com/${{ github.repository }}/compare/${{ env.old_nightly_sha }}...${{ github.sha }}
files: |
*.zip
${{ env.release_filename }}
Loading