Files
deskflow/scripts/package.py
Nick Bolton 7103bbed6d Re-implement CI auto version increment for packaging (#7354)
* Only install Python deps with deps script

* Remove hard-coded Qt version in CI

* Add example .env

* Improve comments in .env file

* Simplify config reader and Choco CI config

* Actually return the config value

* Move deps before Qt version env call

* Remove `self.`

* Move venv ensure to main

* Fixed arg

* Move config import to function

* Move ensure_module to function

* Simplify over-complicated `Version.cmake`

* Move code to `github` module

* Use `symless/next-version-action`

* Make CMake version file even simpler

* Set version from tag

* Create release when master or release branch

* Don't run CI on master push, only release

* Fixed bac macro

* Use new version values

* Handle empty version env var

* Also strip version file value

* Remove quotes

* Add @master to action

* Read version from file

* Simplify version file read

* Fixed typo in env var

* Remove unused var

* Delete legacy build number action

* Fixed env var

* Version file read shouldn't be needed

* Remove weird and unnecessary include path

* Update ChangeLog

* Remove unused config value

* Better name for changelog check

* Delete broken Flatpak CI

* Run stale issue cron at midnight

* Update ChangeLog

* Add version input for manual run

* Print next version

* Fetch all tags

* Use more idiomatic approach

* Set to pre-release when master

* Remove unnecessary `commitish`

* Fixed wrong ID

* More specific IDs

* Reduce config needed for upload

* Only /release can be non-pre-release

* More discreet package path for gdrive

* Try without setting path

* Remove seemly unused step

* Better name for Qt version step

* Fixed bad var ref

* Better name for package dir

* Fixed bad input name

* Add missing shell

* Workflow to test upload action

* Remove fetch tags

* Use bash to cut version

* Remove name and make conditional

* Replace deprecated set-output

* Fixed env var name

* Missing dir sep char

* Add comment to test workflow

* Improve input descriptions

* Replace deprecated set-output
2024-06-26 15:46:42 +00:00

57 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python3
import platform
from lib import env
env_file = ".env"
package_filename_product = "synergy"
def main():
# important: load venv before loading modules that install deps.
env.ensure_in_venv(__file__)
env.ensure_module("dotenv", "python-dotenv")
from dotenv import load_dotenv # type: ignore
load_dotenv(dotenv_path=env_file)
version = env.get_app_version()
filename_base = get_filename_base(version)
print(f"Package filename base: {filename_base}")
if env.is_windows():
windows_package(filename_base)
elif env.is_mac():
mac_package(filename_base)
elif env.is_linux():
linux_package(filename_base)
else:
raise RuntimeError(f"Unsupported platform: {env.get_os()}")
def get_filename_base(version):
os = env.get_os()
machine = platform.machine().lower()
return f"{package_filename_product}-{version}-{os}-{machine}"
def windows_package(filename_base):
"""TODO: Windows packaging"""
pass
def mac_package(filename_base):
from lib import mac
mac.package(filename_base)
def linux_package(filename_base):
"""TODO: Linux packaging"""
pass
if __name__ == "__main__":
main()