diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index ae247f3ee..03f844834 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -5,6 +5,8 @@ on: branches: - main pull_request: + workflow_dispatch: + create: jobs: format: @@ -55,3 +57,12 @@ jobs: with: name: binaries path: ./build/*.bin + + - name: Upload to draft release + uses: softprops/action-gh-release@v2 + if: startsWith(github.ref, 'refs/tags/') + with: + draft: true + generate_release_notes: true + files: | + ./build/BOARD_SLIMEVR-firmware.bin diff --git a/scripts/get_git_commit.py b/scripts/get_git_commit.py index ba482183a..de446bc32 100644 --- a/scripts/get_git_commit.py +++ b/scripts/get_git_commit.py @@ -9,11 +9,44 @@ else: try: revision = ( - subprocess.check_output(["git", "rev-parse", "HEAD"]) + subprocess.check_output(["git", "rev-parse", "--short", "HEAD"]) .strip() .decode("utf-8") ) except Exception: revision = "NOT_GIT" -print(f"'-DGIT_REV=\"{revision}\"'") +tag = "" +try: + tag = ( + subprocess.check_output(["git", "--no-pager", "tag", "--sort", "-taggerdate", "--points-at" , "HEAD"]) + .split("\n")[0] + .strip() + .decode("utf-8") + ) + + if tag.startswith("v"): + tag = tag[1:] +except Exception: + tag = "" + +branch = "" +try: + branch = ( + subprocess.check_output(["git", "symbolic-ref", "--short", "-q", "HEAD"]) + .strip() + .decode("utf-8") + ) +except Exception: + branch = "" + +output = f"'-DGIT_REV=\"{revision}\"'" + +if tag != "": + output += f" '-DFIRMWARE_VERSION=\"{tag}\"'" +if tag == "" and branch != "": + output += f" '-DFIRMWARE_VERSION=\"{branch}\"'" +else: + output += f" '-DFIRMWARE_VERSION=\"git-{revision}\"'" + +print(output) diff --git a/src/debug.h b/src/debug.h index c2f05425f..79cc6ec52 100644 --- a/src/debug.h +++ b/src/debug.h @@ -95,6 +95,9 @@ #define ENABLE_INSPECTION false #define PROTOCOL_VERSION 18 -#define FIRMWARE_VERSION "0.5.0" + +#ifndef FIRMWARE_VERSION +#define FIRMWARE_VERSION "UNKNOWN" +#endif #endif // SLIMEVR_DEBUG_H_