From f676da13193402ab90ccf512c0316372cfc0ff05 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 10 Nov 2025 15:16:17 +0100 Subject: [PATCH 001/196] =?UTF-8?q?dummy.py=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dummy.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 dummy.py diff --git a/dummy.py b/dummy.py new file mode 100644 index 0000000..90a1d60 --- /dev/null +++ b/dummy.py @@ -0,0 +1 @@ +... \ No newline at end of file From f28611530b0652af5a383c713f7924135f2043de Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 10 Nov 2025 15:22:51 +0100 Subject: [PATCH 002/196] Dummycontent --- .gitignore | 176 ++++++++++++++++++++++++++++++++++++++ LICENSE | 232 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 3 + __init__.py | 3 + main.py | 22 +++++ metadata.txt | 21 +++++ 6 files changed, 457 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 __init__.py create mode 100644 main.py create mode 100644 metadata.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..36b13f1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,176 @@ +# ---> Python +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# UV +# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +#uv.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# Ruff stuff: +.ruff_cache/ + +# PyPI configuration file +.pypirc + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d60b809 --- /dev/null +++ b/LICENSE @@ -0,0 +1,232 @@ +GNU GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +Preamble + +The GNU General Public License is a free, copyleft license for software and other kinds of works. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. + +Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and modification follow. + +TERMS AND CONDITIONS + +0. Definitions. + +“This License” refers to version 3 of the GNU General Public License. + +“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. + +“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. + +To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. + +A “covered work” means either the unmodified Program or a work based on the Program. + +To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. + +To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. + +1. Source Code. +The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. + +A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. + +The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +2. Basic Permissions. +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. + +4. Conveying Verbatim Copies. +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. + + c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. + +6. Conveying Non-Source Forms. +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: + + a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. + + d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. + +A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. + +“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. + +7. Additional Terms. +“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or authors of the material; or + + e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. + +All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. + +8. Termination. +You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. + +9. Acceptance Not Required for Having Copies. +You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. + +An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. + +11. Patents. +A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. + +A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. + +In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. + +A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. +If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. + +13. Use with the GNU Affero General Public License. +Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. + +14. Revised Versions of this License. +The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. + +15. Disclaimer of Warranty. +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. +If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. + + sn_basis + Copyright (C) 2025 LNO + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: + + sn_basis Copyright (C) 2025 LNO + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”. + +You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . + +The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . diff --git a/README.md b/README.md new file mode 100644 index 0000000..b3e1cef --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# sn_basis + +QGIS Plugin mit Basisfunktionen LNO Sachsen \ No newline at end of file diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..2fb6498 --- /dev/null +++ b/__init__.py @@ -0,0 +1,3 @@ +def classFactory(iface): + from .main import lnoSachsenBasis + return lnoSachsenBasis(iface) diff --git a/main.py b/main.py new file mode 100644 index 0000000..ccc4c2d --- /dev/null +++ b/main.py @@ -0,0 +1,22 @@ +import os + +class lnoSachsenBasis: + """ + Plugin-Klasse für Basisfunktionen. Stellt Funktionen und Klassen für andere Plugins bereit. + """ + + def __init__(self, iface): + self.iface = iface + self.plugin_dir = os.path.dirname(__file__) + + def initGui(self): + """ + Keine GUI-Integration nötig. + """ + pass + + def unload(self): + """ + Keine GUI-Elemente zu entfernen. + """ + pass \ No newline at end of file diff --git a/metadata.txt b/metadata.txt new file mode 100644 index 0000000..47af179 --- /dev/null +++ b/metadata.txt @@ -0,0 +1,21 @@ +[general] +name=LNO Sachsen | Basisfunktionen +qgisMinimumVersion=3.0 +description=Dieses Plugin ist ein Test +version=25.10.3 +author=Michael Otto +email=michael.otto@landkreis-mittelsachsen.de + +about=Provide a brief description of the plugin and its purpose. + +hasProcessingProvider=no +tags=python + +category=Plugins +icon=icon.png +experimental=True + +deprecated=False + +server=False + From de6446685b96f0b2e4e4cdf864223fdb1b5fb69d Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 10 Nov 2025 15:28:18 +0100 Subject: [PATCH 003/196] Erster Versuch Gitea Actions --- .gitea/workflows/release.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .gitea/workflows/release.yml diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..99707a6 --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,20 @@ +name: Build custom release zip + +on: + push: + tags: + - '*' # läuft bei jedem neuen Tag + +jobs: + build-release: + runs-on: docker + steps: + # 1. Repository auschecken + - name: Checkout + uses: actions/checkout@v3 + + # 2. ZIP-Datei mit ausgewählten Dateien/Ordnern erstellen + - name: Create custom zip + run: | + apk add zip + zip -r my-release-${GITEA_REF_NAME}.zip src/ docs/ README.md \ No newline at end of file From 7c526d8b27e0b4739cdf47bea12526aa01089e73 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 2 Mar 2026 07:47:14 +0100 Subject: [PATCH 004/196] Erste von claude.ai erstellte Version --- .gitea/workflows/release.yml | 100 +++++++++++++++++++++++++++++++---- metadata.txt | 26 ++++----- 2 files changed, 98 insertions(+), 28 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 99707a6..7145972 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -1,20 +1,98 @@ -name: Build custom release zip +name: Release Plugin on: push: tags: - - '*' # läuft bei jedem neuen Tag + - 'v*' + branches: + - feature/release # Zum Testen: auch bei Branch-Push auslösen jobs: - build-release: - runs-on: docker + release: + runs-on: alpine-latest steps: - # 1. Repository auschecken - - name: Checkout - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - # 2. ZIP-Datei mit ausgewählten Dateien/Ordnern erstellen - - name: Create custom zip + - name: Install dependencies + run: apk add --no-cache zip curl + + - name: Determine channel from tag + id: channel run: | - apk add zip - zip -r my-release-${GITEA_REF_NAME}.zip src/ docs/ README.md \ No newline at end of file + # Bei Branch-Push (kein Tag): dev als Default + TAG="${{ github.ref_name }}" + if [[ "$TAG" =~ -dev ]]; then + echo "channel=dev" >> $GITHUB_OUTPUT + echo "version=$TAG" >> $GITHUB_OUTPUT + elif [[ "$TAG" =~ -beta ]]; then + echo "channel=beta" >> $GITHUB_OUTPUT + echo "version=$TAG" >> $GITHUB_OUTPUT + elif [[ "$TAG" =~ ^v[0-9] ]]; then + echo "channel=stable" >> $GITHUB_OUTPUT + echo "version=$TAG" >> $GITHUB_OUTPUT + else + # Branch-Push ohne Tag → dev-Build + echo "channel=dev" >> $GITHUB_OUTPUT + echo "version=dev-$(date +%Y%m%d-%H%M)" >> $GITHUB_OUTPUT + fi + + - name: Build plugin ZIP + run: | + PLUGIN_NAME="Plugin_Test_Action" + VERSION="${{ steps.channel.outputs.version }}" + mkdir -p dist + zip -r dist/${PLUGIN_NAME}-${VERSION}.zip \ + ${PLUGIN_NAME}/ \ + -x "*.pyc" -x "*/__pycache__/*" + echo "ZIP_PATH=dist/${PLUGIN_NAME}-${VERSION}.zip" >> $GITHUB_ENV + echo "PLUGIN_NAME=${PLUGIN_NAME}" >> $GITHUB_ENV + echo "VERSION=${VERSION}" >> $GITHUB_ENV + + - name: Create Gitea Release + id: create_release + run: | + IS_PRERELEASE=true + [[ "${{ steps.channel.outputs.channel }}" == "stable" ]] && IS_PRERELEASE=false + + RESPONSE=$(curl -s -X POST \ + -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ + -H "Content-Type: application/json" \ + "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases" \ + -d "{ + \"tag_name\": \"${VERSION}\", + \"name\": \"Release ${VERSION}\", + \"prerelease\": ${IS_PRERELEASE} + }") + echo "RELEASE_ID=$(echo $RESPONSE | grep -o '\"id\":[0-9]*' | head -1 | cut -d: -f2)" >> $GITHUB_ENV + + - name: Upload ZIP asset + run: | + curl -s -X POST \ + -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ + -H "Content-Type: application/zip" \ + "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases/${RELEASE_ID}/assets?name=$(basename ${ZIP_PATH})" \ + --data-binary @${ZIP_PATH} + + - name: Get asset download URL + run: | + ASSETS=$(curl -s \ + -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ + "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases/${RELEASE_ID}/assets") + DOWNLOAD_URL=$(echo $ASSETS | grep -o '"browser_download_url":"[^"]*' | head -1 | cut -d'"' -f4) + echo "DOWNLOAD_URL=${DOWNLOAD_URL}" >> $GITHUB_ENV + + - name: Trigger Repository update + run: | + curl -s -X POST \ + -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ + -H "Content-Type: application/json" \ + "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository_owner }}/Repository/dispatches" \ + -d "{ + \"type\": \"plugin-released\", + \"payload\": { + \"plugin\": \"${PLUGIN_NAME}\", + \"version\": \"${VERSION}\", + \"channel\": \"${{ steps.channel.outputs.channel }}\", + \"download_url\": \"${DOWNLOAD_URL}\" + } + }" \ No newline at end of file diff --git a/metadata.txt b/metadata.txt index 47af179..0fac9f7 100644 --- a/metadata.txt +++ b/metadata.txt @@ -1,21 +1,13 @@ [general] -name=LNO Sachsen | Basisfunktionen +name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.0 -description=Dieses Plugin ist ein Test -version=25.10.3 +qgisMaximumVersion=3.99 +description=Test plugin for release pipeline +version=26.3.1 author=Michael Otto email=michael.otto@landkreis-mittelsachsen.de - -about=Provide a brief description of the plugin and its purpose. - -hasProcessingProvider=no -tags=python - -category=Plugins -icon=icon.png -experimental=True - -deprecated=False - -server=False - +homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action +tracker=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action/issues +repository=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action +experimental=False +deprecated=False \ No newline at end of file From 60d792cdb153269ff1b25e2f6157e1677567c551 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 2 Mar 2026 09:10:52 +0100 Subject: [PATCH 005/196] Zweite von claude.ai erstellte Version --- .gitea/workflows/release.yml | 152 ++++++++++++++++++++++++++--------- .gitignore | 1 + .plugin/changelog.txt | 5 ++ .plugin/plugin.cfg | 14 ++++ 4 files changed, 132 insertions(+), 40 deletions(-) create mode 100644 .plugin/changelog.txt create mode 100644 .plugin/plugin.cfg diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 7145972..383c1a9 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -4,8 +4,6 @@ on: push: tags: - 'v*' - branches: - - feature/release # Zum Testen: auch bei Branch-Push auslösen jobs: release: @@ -16,72 +14,147 @@ jobs: - name: Install dependencies run: apk add --no-cache zip curl - - name: Determine channel from tag - id: channel + - name: Determine version and channel + id: info run: | - # Bei Branch-Push (kein Tag): dev als Default TAG="${{ github.ref_name }}" + VERSION="${TAG#v}" + if [[ "$TAG" =~ -dev ]]; then - echo "channel=dev" >> $GITHUB_OUTPUT - echo "version=$TAG" >> $GITHUB_OUTPUT + CHANNEL="dev" elif [[ "$TAG" =~ -beta ]]; then - echo "channel=beta" >> $GITHUB_OUTPUT - echo "version=$TAG" >> $GITHUB_OUTPUT - elif [[ "$TAG" =~ ^v[0-9] ]]; then - echo "channel=stable" >> $GITHUB_OUTPUT - echo "version=$TAG" >> $GITHUB_OUTPUT + CHANNEL="beta" else - # Branch-Push ohne Tag → dev-Build - echo "channel=dev" >> $GITHUB_OUTPUT - echo "version=dev-$(date +%Y%m%d-%H%M)" >> $GITHUB_OUTPUT + CHANNEL="stable" fi + echo "version=${VERSION}" >> $GITHUB_OUTPUT + echo "channel=${CHANNEL}" >> $GITHUB_OUTPUT + + - name: Read plugin.cfg + id: cfg + run: | + CFG=".plugin/plugin.cfg" + + get_value() { + grep -i "^$1" "$CFG" | head -1 | cut -d= -f2- | tr -d '\r' | xargs + } + + echo "zip_folder=$(get_value zip_folder)" >> $GITHUB_OUTPUT + echo "name=$(get_value name)" >> $GITHUB_OUTPUT + echo "qgis_min=$(get_value qgisMinimumVersion)" >> $GITHUB_OUTPUT + echo "qgis_max=$(get_value qgisMaximumVersion)" >> $GITHUB_OUTPUT + echo "description=$(get_value description)" >> $GITHUB_OUTPUT + echo "author=$(get_value author)" >> $GITHUB_OUTPUT + echo "email=$(get_value email)" >> $GITHUB_OUTPUT + echo "homepage=$(get_value homepage)" >> $GITHUB_OUTPUT + echo "tracker=$(get_value tracker)" >> $GITHUB_OUTPUT + echo "repository=$(get_value repository)" >> $GITHUB_OUTPUT + echo "experimental=$(get_value experimental)" >> $GITHUB_OUTPUT + echo "deprecated=$(get_value deprecated)" >> $GITHUB_OUTPUT + + - name: Generate metadata.txt + run: | + VERSION="${{ steps.info.outputs.version }}" + CHANGELOG=$(cat .plugin/changelog.txt) + + cat > metadata.txt << EOF + [general] + name=${{ steps.cfg.outputs.name }} + version=${VERSION} + qgisMinimumVersion=${{ steps.cfg.outputs.qgis_min }} + qgisMaximumVersion=${{ steps.cfg.outputs.qgis_max }} + description=${{ steps.cfg.outputs.description }} + author=${{ steps.cfg.outputs.author }} + email=${{ steps.cfg.outputs.email }} + homepage=${{ steps.cfg.outputs.homepage }} + tracker=${{ steps.cfg.outputs.tracker }} + repository=${{ steps.cfg.outputs.repository }} + experimental=${{ steps.cfg.outputs.experimental }} + deprecated=${{ steps.cfg.outputs.deprecated }} + changelog=${VERSION} + $(cat .plugin/changelog.txt) + EOF + - name: Build plugin ZIP run: | - PLUGIN_NAME="Plugin_Test_Action" - VERSION="${{ steps.channel.outputs.version }}" - mkdir -p dist - zip -r dist/${PLUGIN_NAME}-${VERSION}.zip \ - ${PLUGIN_NAME}/ \ + REPO_NAME="${{ github.event.repository.name }}" + ZIP_FOLDER="${{ steps.cfg.outputs.zip_folder }}" + VERSION="${{ steps.info.outputs.version }}" + ZIP_NAME="${REPO_NAME}-${VERSION}.zip" + + # Temporären Ordner mit zip_folder-Namen anlegen + mkdir -p dist/${ZIP_FOLDER} + + # Alle Plugin-Dateien hineinkopieren (ohne .gitea, .plugin, dist) + rsync -a \ + --exclude='.gitea' \ + --exclude='.plugin' \ + --exclude='.git' \ + --exclude='dist' \ + ./ dist/${ZIP_FOLDER}/ + + # ZIP bauen + cd dist + zip -r ${ZIP_NAME} ${ZIP_FOLDER}/ \ -x "*.pyc" -x "*/__pycache__/*" - echo "ZIP_PATH=dist/${PLUGIN_NAME}-${VERSION}.zip" >> $GITHUB_ENV - echo "PLUGIN_NAME=${PLUGIN_NAME}" >> $GITHUB_ENV - echo "VERSION=${VERSION}" >> $GITHUB_ENV + cd .. + + echo "ZIP_NAME=${ZIP_NAME}" >> $GITHUB_ENV - name: Create Gitea Release id: create_release run: | + VERSION="${{ steps.info.outputs.version }}" IS_PRERELEASE=true - [[ "${{ steps.channel.outputs.channel }}" == "stable" ]] && IS_PRERELEASE=false + [[ "${{ steps.info.outputs.channel }}" == "stable" ]] && IS_PRERELEASE=false RESPONSE=$(curl -s -X POST \ -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ -H "Content-Type: application/json" \ "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases" \ -d "{ - \"tag_name\": \"${VERSION}\", + \"tag_name\": \"${{ github.ref_name }}\", \"name\": \"Release ${VERSION}\", \"prerelease\": ${IS_PRERELEASE} }") - echo "RELEASE_ID=$(echo $RESPONSE | grep -o '\"id\":[0-9]*' | head -1 | cut -d: -f2)" >> $GITHUB_ENV + + RELEASE_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2) + echo "release_id=${RELEASE_ID}" >> $GITHUB_OUTPUT - name: Upload ZIP asset + id: upload_asset run: | - curl -s -X POST \ + RESPONSE=$(curl -s -X POST \ -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ -H "Content-Type: application/zip" \ - "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases/${RELEASE_ID}/assets?name=$(basename ${ZIP_PATH})" \ - --data-binary @${ZIP_PATH} + "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ steps.create_release.outputs.release_id }}/assets?name=${ZIP_NAME}" \ + --data-binary @dist/${ZIP_NAME}) - - name: Get asset download URL + DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) + echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT + + - name: Build XML block + id: xmlblock run: | - ASSETS=$(curl -s \ - -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ - "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases/${RELEASE_ID}/assets") - DOWNLOAD_URL=$(echo $ASSETS | grep -o '"browser_download_url":"[^"]*' | head -1 | cut -d'"' -f4) - echo "DOWNLOAD_URL=${DOWNLOAD_URL}" >> $GITHUB_ENV + BLOCK=" \n" + BLOCK+=" ${{ steps.cfg.outputs.description }}\n" + BLOCK+=" ${{ steps.cfg.outputs.qgis_min }}\n" + BLOCK+=" ${{ steps.cfg.outputs.qgis_max }}\n" + BLOCK+=" ${{ steps.cfg.outputs.author }}\n" + BLOCK+=" ${{ steps.cfg.outputs.email }}\n" + BLOCK+=" ${{ steps.cfg.outputs.homepage }}\n" + BLOCK+=" ${{ steps.cfg.outputs.tracker }}\n" + BLOCK+=" ${{ steps.cfg.outputs.repository }}\n" + BLOCK+=" ${{ steps.upload_asset.outputs.download_url }}\n" + BLOCK+=" ${{ steps.cfg.outputs.experimental }}\n" + BLOCK+=" ${{ steps.cfg.outputs.deprecated }}\n" + BLOCK+=" " - - name: Trigger Repository update + BLOCK_ESCAPED=$(printf '%s' "$BLOCK" | sed 's/"/\\"/g') + echo "block=${BLOCK_ESCAPED}" >> $GITHUB_OUTPUT + + - name: Dispatch to Repository run: | curl -s -X POST \ -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ @@ -90,9 +163,8 @@ jobs: -d "{ \"type\": \"plugin-released\", \"payload\": { - \"plugin\": \"${PLUGIN_NAME}\", - \"version\": \"${VERSION}\", - \"channel\": \"${{ steps.channel.outputs.channel }}\", - \"download_url\": \"${DOWNLOAD_URL}\" + \"plugin\": \"${{ steps.cfg.outputs.name }}\", + \"channel\": \"${{ steps.info.outputs.channel }}\", + \"xml_block\": \"${{ steps.xmlblock.outputs.block }}\" } }" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 36b13f1..1e87eb9 100644 --- a/.gitignore +++ b/.gitignore @@ -174,3 +174,4 @@ cython_debug/ # PyPI configuration file .pypirc +metadata.txt \ No newline at end of file diff --git a/.plugin/changelog.txt b/.plugin/changelog.txt new file mode 100644 index 0000000..efe02ee --- /dev/null +++ b/.plugin/changelog.txt @@ -0,0 +1,5 @@ +0.2.0 + - Feature XY hinzugefügt + - Bug Z behoben +0.1.0 + - Initiales Release \ No newline at end of file diff --git a/.plugin/plugin.cfg b/.plugin/plugin.cfg new file mode 100644 index 0000000..6bd305f --- /dev/null +++ b/.plugin/plugin.cfg @@ -0,0 +1,14 @@ +[general] +zip_folder=mein_plugin_ordner +name=LNO Sachsen | Plugin Test Action +qgisMinimumVersion=3.0 +qgisMaximumVersion=3.99 +description=Test plugin for release pipeline +version=26.3.1 +author=Michael Otto +email=michael.otto@landkreis-mittelsachsen.de +homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action +tracker=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action/issues +repository=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action +experimental=False +deprecated=False \ No newline at end of file From 4e1719472b528101a68ff3923a7658257de549a4 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 2 Mar 2026 10:16:43 +0100 Subject: [PATCH 006/196] .gitea/workflows/release.yml aktualisiert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit checkout geändert --- .gitea/workflows/release.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 383c1a9..5e36ff1 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -9,7 +9,14 @@ jobs: release: runs-on: alpine-latest steps: - - uses: actions/checkout@v3 + - name: Checkout + run: | + curl -s -L \ + -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ + "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/archive/${{ github.sha }}.tar.gz" \ + -o repo.tar.gz + tar -xzf repo.tar.gz --strip-components=1 + rm repo.tar.gz - name: Install dependencies run: apk add --no-cache zip curl From d5e403d3dea83fe2e887d0cd9bd4b5270ab2f1f2 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 2 Mar 2026 10:18:20 +0100 Subject: [PATCH 007/196] .gitea/workflows/release.yml aktualisiert Syntax korrigiert --- .gitea/workflows/release.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 5e36ff1..2cdd61b 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -10,13 +10,13 @@ jobs: runs-on: alpine-latest steps: - name: Checkout - run: | - curl -s -L \ - -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ - "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/archive/${{ github.sha }}.tar.gz" \ - -o repo.tar.gz - tar -xzf repo.tar.gz --strip-components=1 - rm repo.tar.gz + run: | + curl -s -L \ + -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ + "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/archive/${{ github.sha }}.tar.gz" \ + -o repo.tar.gz + tar -xzf repo.tar.gz --strip-components=1 + rm repo.tar.gz - name: Install dependencies run: apk add --no-cache zip curl From 947727343017a2d80ea473274a748df86e50c421 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 2 Mar 2026 10:25:01 +0100 Subject: [PATCH 008/196] Install dependencies an den Anfang gestellt --- .gitea/workflows/release.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 2cdd61b..cd33149 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -9,6 +9,8 @@ jobs: release: runs-on: alpine-latest steps: + - name: Install dependencies + run: apk add --no-cache zip curl - name: Checkout run: | curl -s -L \ @@ -17,10 +19,6 @@ jobs: -o repo.tar.gz tar -xzf repo.tar.gz --strip-components=1 rm repo.tar.gz - - - name: Install dependencies - run: apk add --no-cache zip curl - - name: Determine version and channel id: info run: | From 2e1651eaf4f6b5d3920b1ede2dd2cfa45f636cf3 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 2 Mar 2026 10:30:50 +0100 Subject: [PATCH 009/196] =?UTF-8?q?dependencies=20und=20checkout=20von=20E?= =?UTF-8?q?rik=20=C3=BCbernommen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index cd33149..f35a692 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -8,17 +8,20 @@ on: jobs: release: runs-on: alpine-latest + defaults: + run: + shell: sh + steps: - name: Install dependencies - run: apk add --no-cache zip curl + run: | + apk add --no-cache git zip curl jq + git config --global http.sslVerify false + - name: Checkout run: | - curl -s -L \ - -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ - "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/archive/${{ github.sha }}.tar.gz" \ - -o repo.tar.gz - tar -xzf repo.tar.gz --strip-components=1 - rm repo.tar.gz + git clone --depth 1 --branch ${{ github.ref_name }} https://x-access-token:${{ gitea.token }}@entwicklung.flurneuordnung-sachsen.de/${{ github.repository }}.git . + - name: Determine version and channel id: info run: | From 5e59e2bb862bed0df8cff9588730111943a1c571 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 2 Mar 2026 10:33:20 +0100 Subject: [PATCH 010/196] =?UTF-8?q?dependency=20rsync=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index f35a692..a91a766 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Install dependencies run: | - apk add --no-cache git zip curl jq + apk add --no-cache git zip curl jq rsync git config --global http.sslVerify false - name: Checkout From c3077eeb7cfeff16cc3213f9c8add1da2414a2d3 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 2 Mar 2026 10:58:52 +0100 Subject: [PATCH 011/196] =?UTF-8?q?RELEASE=5FURL=20und=20RELEASE=5FTOKEN?= =?UTF-8?q?=20eingef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index a91a766..2d6d767 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -20,7 +20,7 @@ jobs: - name: Checkout run: | - git clone --depth 1 --branch ${{ github.ref_name }} https://x-access-token:${{ gitea.token }}@entwicklung.flurneuordnung-sachsen.de/${{ github.repository }}.git . + git clone --depth 1 --branch ${{ github.ref_name }} https://x-access-token:${{ gitea.token }}@${{ vars.RELEASE_URL }}/${{ github.repository }}.git . - name: Determine version and channel id: info @@ -118,9 +118,9 @@ jobs: [[ "${{ steps.info.outputs.channel }}" == "stable" ]] && IS_PRERELEASE=false RESPONSE=$(curl -s -X POST \ - -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ - "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases" \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases" \ -d "{ \"tag_name\": \"${{ github.ref_name }}\", \"name\": \"Release ${VERSION}\", @@ -134,9 +134,9 @@ jobs: id: upload_asset run: | RESPONSE=$(curl -s -X POST \ - -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/zip" \ - "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ steps.create_release.outputs.release_id }}/assets?name=${ZIP_NAME}" \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ steps.create_release.outputs.release_id }}/assets?name=${ZIP_NAME}" \ --data-binary @dist/${ZIP_NAME}) DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) @@ -165,9 +165,9 @@ jobs: - name: Dispatch to Repository run: | curl -s -X POST \ - -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ - "${{ vars.GITEA_URL }}/api/v1/repos/${{ github.repository_owner }}/Repository/dispatches" \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository_owner }}/Repository/dispatches" \ -d "{ \"type\": \"plugin-released\", \"payload\": { From 9a0f34d08c361718ebc2a5dde2cf02ae0e33883c Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 2 Mar 2026 11:02:26 +0100 Subject: [PATCH 012/196] Build XML block angepasst --- .gitea/workflows/release.yml | 38 ++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 2d6d767..bf381c6 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -143,24 +143,28 @@ jobs: echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT - name: Build XML block - id: xmlblock - run: | - BLOCK=" \n" - BLOCK+=" ${{ steps.cfg.outputs.description }}\n" - BLOCK+=" ${{ steps.cfg.outputs.qgis_min }}\n" - BLOCK+=" ${{ steps.cfg.outputs.qgis_max }}\n" - BLOCK+=" ${{ steps.cfg.outputs.author }}\n" - BLOCK+=" ${{ steps.cfg.outputs.email }}\n" - BLOCK+=" ${{ steps.cfg.outputs.homepage }}\n" - BLOCK+=" ${{ steps.cfg.outputs.tracker }}\n" - BLOCK+=" ${{ steps.cfg.outputs.repository }}\n" - BLOCK+=" ${{ steps.upload_asset.outputs.download_url }}\n" - BLOCK+=" ${{ steps.cfg.outputs.experimental }}\n" - BLOCK+=" ${{ steps.cfg.outputs.deprecated }}\n" - BLOCK+=" " + id: xmlblock + run: | + NAME="${{ steps.cfg.outputs.name }}" + VERSION="${{ steps.info.outputs.version }}" + + BLOCK=$(printf ' \n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n ' \ + "$NAME" \ + "$VERSION" \ + "${{ steps.cfg.outputs.description }}" \ + "${{ steps.cfg.outputs.qgis_min }}" \ + "${{ steps.cfg.outputs.qgis_max }}" \ + "${{ steps.cfg.outputs.author }}" \ + "${{ steps.cfg.outputs.email }}" \ + "${{ steps.cfg.outputs.homepage }}" \ + "${{ steps.cfg.outputs.tracker }}" \ + "${{ steps.cfg.outputs.repository }}" \ + "${{ steps.download_url.outputs.download_url }}" \ + "${{ steps.cfg.outputs.experimental }}" \ + "${{ steps.cfg.outputs.deprecated }}") - BLOCK_ESCAPED=$(printf '%s' "$BLOCK" | sed 's/"/\\"/g') - echo "block=${BLOCK_ESCAPED}" >> $GITHUB_OUTPUT + BLOCK_ESCAPED=$(printf '%s' "$BLOCK" | sed 's/"/\\"/g') + echo "block=${BLOCK_ESCAPED}" >> $GITHUB_OUTPUT - name: Dispatch to Repository run: | From 5d194fe628ee2265e17c1d0c0108495e3eac4940 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 2 Mar 2026 11:12:08 +0100 Subject: [PATCH 013/196] Syntax release.yml korrigiert ... --- .gitea/workflows/release.yml | 41 ++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index bf381c6..e75c6d5 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json name: Release Plugin on: @@ -143,28 +144,28 @@ jobs: echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT - name: Build XML block - id: xmlblock - run: | - NAME="${{ steps.cfg.outputs.name }}" - VERSION="${{ steps.info.outputs.version }}" + id: xmlblock + run: | + NAME="${{ steps.cfg.outputs.name }}" + VERSION="${{ steps.info.outputs.version }}" - BLOCK=$(printf ' \n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n ' \ - "$NAME" \ - "$VERSION" \ - "${{ steps.cfg.outputs.description }}" \ - "${{ steps.cfg.outputs.qgis_min }}" \ - "${{ steps.cfg.outputs.qgis_max }}" \ - "${{ steps.cfg.outputs.author }}" \ - "${{ steps.cfg.outputs.email }}" \ - "${{ steps.cfg.outputs.homepage }}" \ - "${{ steps.cfg.outputs.tracker }}" \ - "${{ steps.cfg.outputs.repository }}" \ - "${{ steps.download_url.outputs.download_url }}" \ - "${{ steps.cfg.outputs.experimental }}" \ - "${{ steps.cfg.outputs.deprecated }}") + BLOCK=$(printf ' \n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n ' \ + "$NAME" \ + "$VERSION" \ + "${{ steps.cfg.outputs.description }}" \ + "${{ steps.cfg.outputs.qgis_min }}" \ + "${{ steps.cfg.outputs.qgis_max }}" \ + "${{ steps.cfg.outputs.author }}" \ + "${{ steps.cfg.outputs.email }}" \ + "${{ steps.cfg.outputs.homepage }}" \ + "${{ steps.cfg.outputs.tracker }}" \ + "${{ steps.cfg.outputs.repository }}" \ + "${{ steps.download_url.outputs.download_url }}" \ + "${{ steps.cfg.outputs.experimental }}" \ + "${{ steps.cfg.outputs.deprecated }}") - BLOCK_ESCAPED=$(printf '%s' "$BLOCK" | sed 's/"/\\"/g') - echo "block=${BLOCK_ESCAPED}" >> $GITHUB_OUTPUT + BLOCK_ESCAPED=$(printf '%s' "$BLOCK" | sed 's/"/\\"/g') + echo "block=${BLOCK_ESCAPED}" >> $GITHUB_OUTPUT - name: Dispatch to Repository run: | From be5d1ed18c1b89d9dda833762e8a6d5d02b7db30 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 12:25:45 +0100 Subject: [PATCH 014/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index e75c6d5..1bf9662 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -21,7 +21,10 @@ jobs: - name: Checkout run: | - git clone --depth 1 --branch ${{ github.ref_name }} https://x-access-token:${{ gitea.token }}@${{ vars.RELEASE_URL }}/${{ github.repository }}.git . + git clone --depth 1 \ + --branch ${{ github.ref_name }} \ + http://x-access-token:${{ secrets.GITEA_TOKEN }}@${{ vars.GITEA_URL }}/${{ github.repository }}.git \ + . - name: Determine version and channel id: info @@ -40,6 +43,10 @@ jobs: echo "version=${VERSION}" >> $GITHUB_OUTPUT echo "channel=${CHANNEL}" >> $GITHUB_OUTPUT + # Nur fürs Log: + echo "VERSION: $VERSION" + echo "CHANNEL: $CHANNEL" + - name: Read plugin.cfg id: cfg run: | @@ -62,6 +69,20 @@ jobs: echo "experimental=$(get_value experimental)" >> $GITHUB_OUTPUT echo "deprecated=$(get_value deprecated)" >> $GITHUB_OUTPUT + # Nur fürs Log: + echo "zip_folder=$(get_value zip_folder)" + echo "name=$(get_value name)" + echo "qgis_min=$(get_value qgisMinimumVersion)" + echo "qgis_max=$(get_value qgisMaximumVersion)" + echo "description=$(get_value description)" + echo "author=$(get_value author)" + echo "email=$(get_value email)" + echo "homepage=$(get_value homepage)" + echo "tracker=$(get_value tracker)" + echo "repository=$(get_value repository)" + echo "experimental=$(get_value experimental)" + echo "deprecated=$(get_value deprecated)" + - name: Generate metadata.txt run: | VERSION="${{ steps.info.outputs.version }}" @@ -85,6 +106,9 @@ jobs: $(cat .plugin/changelog.txt) EOF + # Nur fürs Log: + cat metadata.txt + - name: Build plugin ZIP run: | REPO_NAME="${{ github.event.repository.name }}" @@ -111,6 +135,9 @@ jobs: echo "ZIP_NAME=${ZIP_NAME}" >> $GITHUB_ENV + # Nur fürs Log: + echo "ZIP_NAME=${ZIP_NAME}" + - name: Create Gitea Release id: create_release run: | From 8db121d08fd7ec92c9219c4ba748c73cef4f3880 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 12:27:05 +0100 Subject: [PATCH 015/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 1bf9662..8c824c0 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -23,7 +23,7 @@ jobs: run: | git clone --depth 1 \ --branch ${{ github.ref_name }} \ - http://x-access-token:${{ secrets.GITEA_TOKEN }}@${{ vars.GITEA_URL }}/${{ github.repository }}.git \ + http://x-access-token:${{ secrets.RELEASE_TOKEN }}@${{ vars.RELEASE_URL }}/${{ github.repository }}.git \ . - name: Determine version and channel From c4f32e3f4b91ec857167bc58a00031d9b3a2833e Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 12:28:08 +0100 Subject: [PATCH 016/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 8c824c0..c1125dd 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -23,7 +23,7 @@ jobs: run: | git clone --depth 1 \ --branch ${{ github.ref_name }} \ - http://x-access-token:${{ secrets.RELEASE_TOKEN }}@${{ vars.RELEASE_URL }}/${{ github.repository }}.git \ + https://x-access-token:${{ secrets.RELEASE_TOKEN }}@${{ vars.RELEASE_URL }}/${{ github.repository }}.git \ . - name: Determine version and channel From 0920f096d9d73fe96f5fcd4eacef81003f408ea8 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 12:34:57 +0100 Subject: [PATCH 017/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index c1125dd..6ab4be4 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -138,6 +138,15 @@ jobs: # Nur fürs Log: echo "ZIP_NAME=${ZIP_NAME}" + - name: Check if release exists + id: check_release + run: | + RESPONSE=$(curl -s \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/tags/${{ github.ref_name }}") + + echo "response=$RESPONSE" >> $GITHUB_OUTPUT + - name: Create Gitea Release id: create_release run: | From cf55936a5a7c88f57e668e5ad2df61f8b3f10bac Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 12:51:08 +0100 Subject: [PATCH 018/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 6ab4be4..f06aadc 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -32,13 +32,11 @@ jobs: TAG="${{ github.ref_name }}" VERSION="${TAG#v}" - if [[ "$TAG" =~ -dev ]]; then - CHANNEL="dev" - elif [[ "$TAG" =~ -beta ]]; then - CHANNEL="beta" - else - CHANNEL="stable" - fi + case "$TAG" in + *-dev*) CHANNEL="dev" ;; + *-beta*) CHANNEL="beta" ;; + *) CHANNEL="stable" ;; + esac echo "version=${VERSION}" >> $GITHUB_OUTPUT echo "channel=${CHANNEL}" >> $GITHUB_OUTPUT @@ -179,6 +177,8 @@ jobs: DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT + echo "Upload response: $RESPONSE" + - name: Build XML block id: xmlblock run: | From 204af9c3816ca2744febbbd09fd855d57959437d Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:00:56 +0100 Subject: [PATCH 019/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index f06aadc..cfff714 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -144,6 +144,7 @@ jobs: "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/tags/${{ github.ref_name }}") echo "response=$RESPONSE" >> $GITHUB_OUTPUT + echo "Check response: $RESPONSE" - name: Create Gitea Release id: create_release From f58b26cd9399474ee8f5f2703521055391e2e4ac Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:04:52 +0100 Subject: [PATCH 020/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 45 +++++++++++++++++------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index cfff714..2c5173f 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -136,35 +136,32 @@ jobs: # Nur fürs Log: echo "ZIP_NAME=${ZIP_NAME}" - - name: Check if release exists - id: check_release - run: | - RESPONSE=$(curl -s \ - -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/tags/${{ github.ref_name }}") - - echo "response=$RESPONSE" >> $GITHUB_OUTPUT - echo "Check response: $RESPONSE" - - name: Create Gitea Release id: create_release run: | - VERSION="${{ steps.info.outputs.version }}" - IS_PRERELEASE=true - [[ "${{ steps.info.outputs.channel }}" == "stable" ]] && IS_PRERELEASE=false - - RESPONSE=$(curl -s -X POST \ + echo "Kommuniziere mit Gitea API über HTTPS..." + API_RESPONSE=$(curl -s -k -X POST "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases" \ + -H "accept: application/json" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases" \ - -d "{ - \"tag_name\": \"${{ github.ref_name }}\", - \"name\": \"Release ${VERSION}\", - \"prerelease\": ${IS_PRERELEASE} - }") - - RELEASE_ID=$(echo "$RESPONSE" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2) - echo "release_id=${RELEASE_ID}" >> $GITHUB_OUTPUT + -d '{ + "body": "Dieses Release wurde automatisch vom Gitea Runner erstellt.", + "draft": false, + "name": "Version ${{ github.ref_name }}", + "prerelease": false, + "tag_name": "${{ github.ref_name }}" + }') + + RELEASE_ID=$(echo $API_RESPONSE | jq -r '.id') + + if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then + echo "Fehler beim Erstellen des Releases. API Antwort:" + echo $API_RESPONSE + exit 1 + fi + + echo "Release ID: $RELEASE_ID" + echo "RELEASE_ID=$RELEASE_ID" >> $GITHUB_ENV - name: Upload ZIP asset id: upload_asset From ada7108fefa0fa28ed27daa7276f05e446f8eded Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:12:39 +0100 Subject: [PATCH 021/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 2c5173f..cbc9d8c 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -166,11 +166,13 @@ jobs: - name: Upload ZIP asset id: upload_asset run: | - RESPONSE=$(curl -s -X POST \ + + RESPONSE=$(curl -s -k -X POST + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=release_${ZIP_NAME}" \ + -H "accept: application/json" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - -H "Content-Type: application/zip" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ steps.create_release.outputs.release_id }}/assets?name=${ZIP_NAME}" \ - --data-binary @dist/${ZIP_NAME}) + -H "Content-Type: multipart/form-data" \ + -F "attachment=@release_${ZIP_NAME}" DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT From df7a2ba495f613274396b04536bdcbf2c6d00b55 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:14:30 +0100 Subject: [PATCH 022/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index cbc9d8c..44cdf5d 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -166,13 +166,12 @@ jobs: - name: Upload ZIP asset id: upload_asset run: | - RESPONSE=$(curl -s -k -X POST "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=release_${ZIP_NAME}" \ -H "accept: application/json" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: multipart/form-data" \ - -F "attachment=@release_${ZIP_NAME}" + -F "attachment=@release_${ZIP_NAME}") DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT From 262ef56a8ff4905c219a2caeda1812aaded226b3 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:16:21 +0100 Subject: [PATCH 023/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 44cdf5d..5b04e6d 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -167,11 +167,11 @@ jobs: id: upload_asset run: | RESPONSE=$(curl -s -k -X POST - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=release_${ZIP_NAME}" \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${ZIP_NAME}" \ -H "accept: application/json" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: multipart/form-data" \ - -F "attachment=@release_${ZIP_NAME}") + -F "attachment=${ZIP_NAME}") DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT From 204afc6c5f2077b0def92fa57ff2ed9ebee5ba9b Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:20:51 +0100 Subject: [PATCH 024/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 5b04e6d..cf8e894 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -167,11 +167,11 @@ jobs: id: upload_asset run: | RESPONSE=$(curl -s -k -X POST - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${ZIP_NAME}" \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${{ env.ZIP_NAME }}" \ -H "accept: application/json" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: multipart/form-data" \ - -F "attachment=${ZIP_NAME}") + -F "attachment=${{ env.ZIP_NAME }}") DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT From 11a5cda7855408a88dd4d10445822332d9cefb60 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:23:13 +0100 Subject: [PATCH 025/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index cf8e894..a767edb 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -166,6 +166,7 @@ jobs: - name: Upload ZIP asset id: upload_asset run: | + echo "Lade release_${{ github.ref_name }}.zip (${{ env.ZIP_NAME }})hoch..." RESPONSE=$(curl -s -k -X POST "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${{ env.ZIP_NAME }}" \ -H "accept: application/json" \ From d4b45ff7d79ac73a93e612af61f813edb7e1d84a Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:26:05 +0100 Subject: [PATCH 026/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index a767edb..525a255 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -174,10 +174,12 @@ jobs: -H "Content-Type: multipart/form-data" \ -F "attachment=${{ env.ZIP_NAME }}") + echo "Upload response: $RESPONSE" + DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT - echo "Upload response: $RESPONSE" + - name: Build XML block id: xmlblock From e3255b9c0977ad15220362a397254a3ea81f1330 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:27:34 +0100 Subject: [PATCH 027/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 525a255..bfee892 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -167,8 +167,7 @@ jobs: id: upload_asset run: | echo "Lade release_${{ github.ref_name }}.zip (${{ env.ZIP_NAME }})hoch..." - RESPONSE=$(curl -s -k -X POST - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${{ env.ZIP_NAME }}" \ + RESPONSE=$(curl -s -k -X POST "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${{ env.ZIP_NAME }}" \ -H "accept: application/json" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: multipart/form-data" \ From b8364abb9ca4b1f437ce59adaf4cd9b879ff10b8 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:31:18 +0100 Subject: [PATCH 028/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index bfee892..6eac123 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -166,20 +166,20 @@ jobs: - name: Upload ZIP asset id: upload_asset run: | - echo "Lade release_${{ github.ref_name }}.zip (${{ env.ZIP_NAME }})hoch..." - RESPONSE=$(curl -s -k -X POST "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${{ env.ZIP_NAME }}" \ + echo "Lade release_${{ github.ref_name }}.zip (${{ env.ZIP_NAME }}) hoch..." + + RESPONSE=$(curl -s -k -X POST \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${{ env.ZIP_NAME }}" \ -H "accept: application/json" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: multipart/form-data" \ - -F "attachment=${{ env.ZIP_NAME }}") + -F "attachment=@dist/${{ env.ZIP_NAME }}") echo "Upload response: $RESPONSE" DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT - - - name: Build XML block id: xmlblock run: | From 09d3ba2157b3869f480efb866c6fa2f4eb81146b Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:38:02 +0100 Subject: [PATCH 029/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 6eac123..23ecc46 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -186,20 +186,22 @@ jobs: NAME="${{ steps.cfg.outputs.name }}" VERSION="${{ steps.info.outputs.version }}" - BLOCK=$(printf ' \n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n ' \ - "$NAME" \ - "$VERSION" \ - "${{ steps.cfg.outputs.description }}" \ - "${{ steps.cfg.outputs.qgis_min }}" \ - "${{ steps.cfg.outputs.qgis_max }}" \ - "${{ steps.cfg.outputs.author }}" \ - "${{ steps.cfg.outputs.email }}" \ - "${{ steps.cfg.outputs.homepage }}" \ - "${{ steps.cfg.outputs.tracker }}" \ - "${{ steps.cfg.outputs.repository }}" \ - "${{ steps.download_url.outputs.download_url }}" \ - "${{ steps.cfg.outputs.experimental }}" \ - "${{ steps.cfg.outputs.deprecated }}") + BLOCK=$(cat < + ${{ steps.cfg.outputs.description }} + ${{ steps.cfg.outputs.qgis_min }} + ${{ steps.cfg.outputs.qgis_max }} + ${{ steps.cfg.outputs.author }} + ${{ steps.cfg.outputs.email }} + ${{ steps.cfg.outputs.homepage }} + ${{ steps.cfg.outputs.tracker }} + ${{ steps.cfg.outputs.repository }} + ${{ steps.upload_asset.outputs.download_url }} + ${{ steps.cfg.outputs.experimental }} + ${{ steps.cfg.outputs.deprecated }} + + EOF + ) BLOCK_ESCAPED=$(printf '%s' "$BLOCK" | sed 's/"/\\"/g') echo "block=${BLOCK_ESCAPED}" >> $GITHUB_OUTPUT From b744803e116f8af3e6fbc0c74fefcdd805a2012f Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:46:29 +0100 Subject: [PATCH 030/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 43 ++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 23ecc46..4c6fd66 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -185,26 +185,31 @@ jobs: run: | NAME="${{ steps.cfg.outputs.name }}" VERSION="${{ steps.info.outputs.version }}" - - BLOCK=$(cat < - ${{ steps.cfg.outputs.description }} - ${{ steps.cfg.outputs.qgis_min }} - ${{ steps.cfg.outputs.qgis_max }} - ${{ steps.cfg.outputs.author }} - ${{ steps.cfg.outputs.email }} - ${{ steps.cfg.outputs.homepage }} - ${{ steps.cfg.outputs.tracker }} - ${{ steps.cfg.outputs.repository }} - ${{ steps.upload_asset.outputs.download_url }} - ${{ steps.cfg.outputs.experimental }} - ${{ steps.cfg.outputs.deprecated }} - - EOF - ) - BLOCK_ESCAPED=$(printf '%s' "$BLOCK" | sed 's/"/\\"/g') - echo "block=${BLOCK_ESCAPED}" >> $GITHUB_OUTPUT + BLOCK=$(cat < + ${{ steps.cfg.outputs.description }} + ${{ steps.cfg.outputs.qgis_min }} + ${{ steps.cfg.outputs.qgis_max }} + ${{ steps.cfg.outputs.author }} + ${{ steps.cfg.outputs.email }} + ${{ steps.cfg.outputs.homepage }} + ${{ steps.cfg.outputs.tracker }} + ${{ steps.cfg.outputs.repository }} + ${{ steps.upload_asset.outputs.download_url }} + ${{ steps.cfg.outputs.experimental }} + ${{ steps.cfg.outputs.deprecated }} + + EOF + ) + + # Mehrzeiligen Output korrekt setzen + { + echo "block<> "$GITHUB_OUTPUT" + - name: Dispatch to Repository run: | From 79f78bba258c8e072960ce6b03ee1d7b61c1a91c Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:47:35 +0100 Subject: [PATCH 031/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 46 +----------------------------------- 1 file changed, 1 insertion(+), 45 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 4c6fd66..061983f 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -180,48 +180,4 @@ jobs: DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT - - name: Build XML block - id: xmlblock - run: | - NAME="${{ steps.cfg.outputs.name }}" - VERSION="${{ steps.info.outputs.version }}" - - BLOCK=$(cat < - ${{ steps.cfg.outputs.description }} - ${{ steps.cfg.outputs.qgis_min }} - ${{ steps.cfg.outputs.qgis_max }} - ${{ steps.cfg.outputs.author }} - ${{ steps.cfg.outputs.email }} - ${{ steps.cfg.outputs.homepage }} - ${{ steps.cfg.outputs.tracker }} - ${{ steps.cfg.outputs.repository }} - ${{ steps.upload_asset.outputs.download_url }} - ${{ steps.cfg.outputs.experimental }} - ${{ steps.cfg.outputs.deprecated }} - - EOF - ) - - # Mehrzeiligen Output korrekt setzen - { - echo "block<> "$GITHUB_OUTPUT" - - - - name: Dispatch to Repository - run: | - curl -s -X POST \ - -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - -H "Content-Type: application/json" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository_owner }}/Repository/dispatches" \ - -d "{ - \"type\": \"plugin-released\", - \"payload\": { - \"plugin\": \"${{ steps.cfg.outputs.name }}\", - \"channel\": \"${{ steps.info.outputs.channel }}\", - \"xml_block\": \"${{ steps.xmlblock.outputs.block }}\" - } - }" \ No newline at end of file + \ No newline at end of file From 0dd0d61045d98502739e0575b28774374384c911 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:48:50 +0100 Subject: [PATCH 032/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 061983f..c0f7ef7 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -180,4 +180,32 @@ jobs: DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT - \ No newline at end of file + - name: Build XML block + id: xmlblock + run: | + NAME="${{ steps.cfg.outputs.name }}" + VERSION="${{ steps.info.outputs.version }}" + + BLOCK=$(cat < + ${{ steps.cfg.outputs.description }} + ${{ steps.cfg.outputs.qgis_min }} + ${{ steps.cfg.outputs.qgis_max }} + ${{ steps.cfg.outputs.author }} + ${{ steps.cfg.outputs.email }} + ${{ steps.cfg.outputs.homepage }} + ${{ steps.cfg.outputs.tracker }} + ${{ steps.cfg.outputs.repository }} + ${{ steps.upload_asset.outputs.download_url }} + ${{ steps.cfg.outputs.experimental }} + ${{ steps.cfg.outputs.deprecated }} + + EOF + ) + + # Mehrzeiligen Output korrekt setzen + { + echo "block<> "$GITHUB_OUTPUT" From 5044c7ac5603e9e27b7ec3477d032c0c0a894b41 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:53:51 +0100 Subject: [PATCH 033/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index c0f7ef7..53ffe1f 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -187,25 +187,24 @@ jobs: VERSION="${{ steps.info.outputs.version }}" BLOCK=$(cat < - ${{ steps.cfg.outputs.description }} - ${{ steps.cfg.outputs.qgis_min }} - ${{ steps.cfg.outputs.qgis_max }} - ${{ steps.cfg.outputs.author }} - ${{ steps.cfg.outputs.email }} - ${{ steps.cfg.outputs.homepage }} - ${{ steps.cfg.outputs.tracker }} - ${{ steps.cfg.outputs.repository }} - ${{ steps.upload_asset.outputs.download_url }} - ${{ steps.cfg.outputs.experimental }} - ${{ steps.cfg.outputs.deprecated }} - - EOF - ) + + ${{ steps.cfg.outputs.description }} + ${{ steps.cfg.outputs.qgis_min }} + ${{ steps.cfg.outputs.qgis_max }} + ${{ steps.cfg.outputs.author }} + ${{ steps.cfg.outputs.email }} + ${{ steps.cfg.outputs.homepage }} + ${{ steps.cfg.outputs.tracker }} + ${{ steps.cfg.outputs.repository }} + ${{ steps.upload_asset.outputs.download_url }} + ${{ steps.cfg.outputs.experimental }} + ${{ steps.cfg.outputs.deprecated }} + + EOF + ) - # Mehrzeiligen Output korrekt setzen { echo "block<> "$GITHUB_OUTPUT" + } >> "$GITHUB_OUTPUT" \ No newline at end of file From 0b8b30a748ba29c7896c12a7bc0b0e6e4ceeaad2 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 13:56:11 +0100 Subject: [PATCH 034/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 53ffe1f..5392e8b 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -207,4 +207,19 @@ jobs: echo "block<> "$GITHUB_OUTPUT" \ No newline at end of file + } >> "$GITHUB_OUTPUT" + + - name: Dispatch to Repository + run: | + curl -s -X POST \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + -H "Content-Type: application/json" \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository_owner }}/Repository/dispatches" \ + -d "{ + \"type\": \"plugin-released\", + \"payload\": { + \"plugin\": \"${{ steps.cfg.outputs.name }}\", + \"channel\": \"${{ steps.info.outputs.channel }}\", + \"xml_block\": \"${{ steps.xmlblock.outputs.block }}\" + } + }" From 80b39f8326aed9ba80b0851b207a518e5442054c Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 14:01:59 +0100 Subject: [PATCH 035/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 5392e8b..a0c2fbf 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -211,15 +211,27 @@ jobs: - name: Dispatch to Repository run: | + XML_BLOCK="${{ steps.xmlblock.outputs.block }}" + + JSON=$(jq -n \ + --arg type "plugin-released" \ + --arg plugin "${{ steps.cfg.outputs.name }}" \ + --arg channel "${{ steps.info.outputs.channel }}" \ + --arg xml "$XML_BLOCK" \ + '{ + type: $type, + payload: { + plugin: $plugin, + channel: $channel, + xml_block: $xml + } + }') + + echo "Dispatch JSON:" + echo "$JSON" + curl -s -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository_owner }}/Repository/dispatches" \ - -d "{ - \"type\": \"plugin-released\", - \"payload\": { - \"plugin\": \"${{ steps.cfg.outputs.name }}\", - \"channel\": \"${{ steps.info.outputs.channel }}\", - \"xml_block\": \"${{ steps.xmlblock.outputs.block }}\" - } - }" + -d "$JSON" From b5ba3c46dcf2ccb6878c85e575455343ce473227 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 14:04:18 +0100 Subject: [PATCH 036/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index a0c2fbf..3d882c1 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -218,17 +218,7 @@ jobs: --arg plugin "${{ steps.cfg.outputs.name }}" \ --arg channel "${{ steps.info.outputs.channel }}" \ --arg xml "$XML_BLOCK" \ - '{ - type: $type, - payload: { - plugin: $plugin, - channel: $channel, - xml_block: $xml - } - }') - - echo "Dispatch JSON:" - echo "$JSON" + '{type:$type,payload:{plugin:$plugin,channel:$channel,xml_block:$xml}}') curl -s -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ From 47197cd819d1eb3c91509a0ac7308521decba3e4 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 14:06:54 +0100 Subject: [PATCH 037/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 3d882c1..5392e8b 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -211,17 +211,15 @@ jobs: - name: Dispatch to Repository run: | - XML_BLOCK="${{ steps.xmlblock.outputs.block }}" - - JSON=$(jq -n \ - --arg type "plugin-released" \ - --arg plugin "${{ steps.cfg.outputs.name }}" \ - --arg channel "${{ steps.info.outputs.channel }}" \ - --arg xml "$XML_BLOCK" \ - '{type:$type,payload:{plugin:$plugin,channel:$channel,xml_block:$xml}}') - curl -s -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository_owner }}/Repository/dispatches" \ - -d "$JSON" + -d "{ + \"type\": \"plugin-released\", + \"payload\": { + \"plugin\": \"${{ steps.cfg.outputs.name }}\", + \"channel\": \"${{ steps.info.outputs.channel }}\", + \"xml_block\": \"${{ steps.xmlblock.outputs.block }}\" + } + }" From c4b147d02c33f58c85b06d66e5d657296e81c15d Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 14:16:36 +0100 Subject: [PATCH 038/196] auf bash ungestellt --- .gitea/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 5392e8b..1600c0d 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -11,12 +11,12 @@ jobs: runs-on: alpine-latest defaults: run: - shell: sh + shell: bash steps: - name: Install dependencies run: | - apk add --no-cache git zip curl jq rsync + apk add --no-cache git zip curl jq rsync bash git config --global http.sslVerify false - name: Checkout From 30e82929e926725973ae7caa8fb6cd1a1228e468 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Mon, 2 Mar 2026 14:18:34 +0100 Subject: [PATCH 039/196] .gitea/workflows/release.yml aktualisiert --- .gitea/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 1600c0d..a570c93 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -11,7 +11,7 @@ jobs: runs-on: alpine-latest defaults: run: - shell: bash + shell: sh steps: - name: Install dependencies @@ -210,6 +210,7 @@ jobs: } >> "$GITHUB_OUTPUT" - name: Dispatch to Repository + shell: bash run: | curl -s -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ From a46b25bcc74cfa035a59bed5629fb229aa29ea9d Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 07:22:32 +0100 Subject: [PATCH 040/196] Add release workflow --- .gitea/workflows/release.yml | 359 ++++++++++++++++++----------------- 1 file changed, 182 insertions(+), 177 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index a570c93..0c71de4 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -11,216 +11,221 @@ jobs: runs-on: alpine-latest defaults: run: - shell: sh + shell: bash steps: - - name: Install dependencies + - name: Notwendige Abhängigkeiten installieren run: | apk add --no-cache git zip curl jq rsync bash git config --global http.sslVerify false - - name: Checkout + - name: Debug Info run: | - git clone --depth 1 \ - --branch ${{ github.ref_name }} \ - https://x-access-token:${{ secrets.RELEASE_TOKEN }}@${{ vars.RELEASE_URL }}/${{ github.repository }}.git \ - . + echo "Tag: $GITEA_REF_NAME" + uname -a - - name: Determine version and channel - id: info - run: | - TAG="${{ github.ref_name }}" - VERSION="${TAG#v}" + # - name: Checkout + # run: | + # git clone --depth 1 \ + # --branch ${{ github.ref_name }} \ + # https://x-access-token:${{ secrets.RELEASE_TOKEN }}@${{ vars.RELEASE_URL }}/${{ github.repository }}.git \ + # . - case "$TAG" in - *-dev*) CHANNEL="dev" ;; - *-beta*) CHANNEL="beta" ;; - *) CHANNEL="stable" ;; - esac + # - name: Determine version and channel + # id: info + # run: | + # TAG="${{ github.ref_name }}" + # VERSION="${TAG#v}" - echo "version=${VERSION}" >> $GITHUB_OUTPUT - echo "channel=${CHANNEL}" >> $GITHUB_OUTPUT + # case "$TAG" in + # *-dev*) CHANNEL="dev" ;; + # *-beta*) CHANNEL="beta" ;; + # *) CHANNEL="stable" ;; + # esac - # Nur fürs Log: - echo "VERSION: $VERSION" - echo "CHANNEL: $CHANNEL" + # echo "version=${VERSION}" >> $GITHUB_OUTPUT + # echo "channel=${CHANNEL}" >> $GITHUB_OUTPUT - - name: Read plugin.cfg - id: cfg - run: | - CFG=".plugin/plugin.cfg" + # # Nur fürs Log: + # echo "VERSION: $VERSION" + # echo "CHANNEL: $CHANNEL" - get_value() { - grep -i "^$1" "$CFG" | head -1 | cut -d= -f2- | tr -d '\r' | xargs - } + # - name: Read plugin.cfg + # id: cfg + # run: | + # CFG=".plugin/plugin.cfg" - echo "zip_folder=$(get_value zip_folder)" >> $GITHUB_OUTPUT - echo "name=$(get_value name)" >> $GITHUB_OUTPUT - echo "qgis_min=$(get_value qgisMinimumVersion)" >> $GITHUB_OUTPUT - echo "qgis_max=$(get_value qgisMaximumVersion)" >> $GITHUB_OUTPUT - echo "description=$(get_value description)" >> $GITHUB_OUTPUT - echo "author=$(get_value author)" >> $GITHUB_OUTPUT - echo "email=$(get_value email)" >> $GITHUB_OUTPUT - echo "homepage=$(get_value homepage)" >> $GITHUB_OUTPUT - echo "tracker=$(get_value tracker)" >> $GITHUB_OUTPUT - echo "repository=$(get_value repository)" >> $GITHUB_OUTPUT - echo "experimental=$(get_value experimental)" >> $GITHUB_OUTPUT - echo "deprecated=$(get_value deprecated)" >> $GITHUB_OUTPUT + # get_value() { + # grep -i "^$1" "$CFG" | head -1 | cut -d= -f2- | tr -d '\r' | xargs + # } - # Nur fürs Log: - echo "zip_folder=$(get_value zip_folder)" - echo "name=$(get_value name)" - echo "qgis_min=$(get_value qgisMinimumVersion)" - echo "qgis_max=$(get_value qgisMaximumVersion)" - echo "description=$(get_value description)" - echo "author=$(get_value author)" - echo "email=$(get_value email)" - echo "homepage=$(get_value homepage)" - echo "tracker=$(get_value tracker)" - echo "repository=$(get_value repository)" - echo "experimental=$(get_value experimental)" - echo "deprecated=$(get_value deprecated)" + # echo "zip_folder=$(get_value zip_folder)" >> $GITHUB_OUTPUT + # echo "name=$(get_value name)" >> $GITHUB_OUTPUT + # echo "qgis_min=$(get_value qgisMinimumVersion)" >> $GITHUB_OUTPUT + # echo "qgis_max=$(get_value qgisMaximumVersion)" >> $GITHUB_OUTPUT + # echo "description=$(get_value description)" >> $GITHUB_OUTPUT + # echo "author=$(get_value author)" >> $GITHUB_OUTPUT + # echo "email=$(get_value email)" >> $GITHUB_OUTPUT + # echo "homepage=$(get_value homepage)" >> $GITHUB_OUTPUT + # echo "tracker=$(get_value tracker)" >> $GITHUB_OUTPUT + # echo "repository=$(get_value repository)" >> $GITHUB_OUTPUT + # echo "experimental=$(get_value experimental)" >> $GITHUB_OUTPUT + # echo "deprecated=$(get_value deprecated)" >> $GITHUB_OUTPUT - - name: Generate metadata.txt - run: | - VERSION="${{ steps.info.outputs.version }}" - CHANGELOG=$(cat .plugin/changelog.txt) + # # Nur fürs Log: + # echo "zip_folder=$(get_value zip_folder)" + # echo "name=$(get_value name)" + # echo "qgis_min=$(get_value qgisMinimumVersion)" + # echo "qgis_max=$(get_value qgisMaximumVersion)" + # echo "description=$(get_value description)" + # echo "author=$(get_value author)" + # echo "email=$(get_value email)" + # echo "homepage=$(get_value homepage)" + # echo "tracker=$(get_value tracker)" + # echo "repository=$(get_value repository)" + # echo "experimental=$(get_value experimental)" + # echo "deprecated=$(get_value deprecated)" - cat > metadata.txt << EOF - [general] - name=${{ steps.cfg.outputs.name }} - version=${VERSION} - qgisMinimumVersion=${{ steps.cfg.outputs.qgis_min }} - qgisMaximumVersion=${{ steps.cfg.outputs.qgis_max }} - description=${{ steps.cfg.outputs.description }} - author=${{ steps.cfg.outputs.author }} - email=${{ steps.cfg.outputs.email }} - homepage=${{ steps.cfg.outputs.homepage }} - tracker=${{ steps.cfg.outputs.tracker }} - repository=${{ steps.cfg.outputs.repository }} - experimental=${{ steps.cfg.outputs.experimental }} - deprecated=${{ steps.cfg.outputs.deprecated }} - changelog=${VERSION} - $(cat .plugin/changelog.txt) - EOF + # - name: Generate metadata.txt + # run: | + # VERSION="${{ steps.info.outputs.version }}" + # CHANGELOG=$(cat .plugin/changelog.txt) - # Nur fürs Log: - cat metadata.txt + # cat > metadata.txt << EOF + # [general] + # name=${{ steps.cfg.outputs.name }} + # version=${VERSION} + # qgisMinimumVersion=${{ steps.cfg.outputs.qgis_min }} + # qgisMaximumVersion=${{ steps.cfg.outputs.qgis_max }} + # description=${{ steps.cfg.outputs.description }} + # author=${{ steps.cfg.outputs.author }} + # email=${{ steps.cfg.outputs.email }} + # homepage=${{ steps.cfg.outputs.homepage }} + # tracker=${{ steps.cfg.outputs.tracker }} + # repository=${{ steps.cfg.outputs.repository }} + # experimental=${{ steps.cfg.outputs.experimental }} + # deprecated=${{ steps.cfg.outputs.deprecated }} + # changelog=${VERSION} + # $(cat .plugin/changelog.txt) + # EOF - - name: Build plugin ZIP - run: | - REPO_NAME="${{ github.event.repository.name }}" - ZIP_FOLDER="${{ steps.cfg.outputs.zip_folder }}" - VERSION="${{ steps.info.outputs.version }}" - ZIP_NAME="${REPO_NAME}-${VERSION}.zip" + # # Nur fürs Log: + # cat metadata.txt - # Temporären Ordner mit zip_folder-Namen anlegen - mkdir -p dist/${ZIP_FOLDER} + # - name: Build plugin ZIP + # run: | + # REPO_NAME="${{ github.event.repository.name }}" + # ZIP_FOLDER="${{ steps.cfg.outputs.zip_folder }}" + # VERSION="${{ steps.info.outputs.version }}" + # ZIP_NAME="${REPO_NAME}-${VERSION}.zip" - # Alle Plugin-Dateien hineinkopieren (ohne .gitea, .plugin, dist) - rsync -a \ - --exclude='.gitea' \ - --exclude='.plugin' \ - --exclude='.git' \ - --exclude='dist' \ - ./ dist/${ZIP_FOLDER}/ + # # Temporären Ordner mit zip_folder-Namen anlegen + # mkdir -p dist/${ZIP_FOLDER} - # ZIP bauen - cd dist - zip -r ${ZIP_NAME} ${ZIP_FOLDER}/ \ - -x "*.pyc" -x "*/__pycache__/*" - cd .. + # # Alle Plugin-Dateien hineinkopieren (ohne .gitea, .plugin, dist) + # rsync -a \ + # --exclude='.gitea' \ + # --exclude='.plugin' \ + # --exclude='.git' \ + # --exclude='dist' \ + # ./ dist/${ZIP_FOLDER}/ - echo "ZIP_NAME=${ZIP_NAME}" >> $GITHUB_ENV + # # ZIP bauen + # cd dist + # zip -r ${ZIP_NAME} ${ZIP_FOLDER}/ \ + # -x "*.pyc" -x "*/__pycache__/*" + # cd .. - # Nur fürs Log: - echo "ZIP_NAME=${ZIP_NAME}" + # echo "ZIP_NAME=${ZIP_NAME}" >> $GITHUB_ENV - - name: Create Gitea Release - id: create_release - run: | - echo "Kommuniziere mit Gitea API über HTTPS..." - API_RESPONSE=$(curl -s -k -X POST "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases" \ - -H "accept: application/json" \ - -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - -H "Content-Type: application/json" \ - -d '{ - "body": "Dieses Release wurde automatisch vom Gitea Runner erstellt.", - "draft": false, - "name": "Version ${{ github.ref_name }}", - "prerelease": false, - "tag_name": "${{ github.ref_name }}" - }') + # # Nur fürs Log: + # echo "ZIP_NAME=${ZIP_NAME}" + + # - name: Create Gitea Release + # id: create_release + # run: | + # echo "Kommuniziere mit Gitea API über HTTPS..." + # API_RESPONSE=$(curl -s -k -X POST "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases" \ + # -H "accept: application/json" \ + # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + # -H "Content-Type: application/json" \ + # -d '{ + # "body": "Dieses Release wurde automatisch vom Gitea Runner erstellt.", + # "draft": false, + # "name": "Version ${{ github.ref_name }}", + # "prerelease": false, + # "tag_name": "${{ github.ref_name }}" + # }') - RELEASE_ID=$(echo $API_RESPONSE | jq -r '.id') + # RELEASE_ID=$(echo $API_RESPONSE | jq -r '.id') - if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then - echo "Fehler beim Erstellen des Releases. API Antwort:" - echo $API_RESPONSE - exit 1 - fi + # if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then + # echo "Fehler beim Erstellen des Releases. API Antwort:" + # echo $API_RESPONSE + # exit 1 + # fi - echo "Release ID: $RELEASE_ID" - echo "RELEASE_ID=$RELEASE_ID" >> $GITHUB_ENV + # echo "Release ID: $RELEASE_ID" + # echo "RELEASE_ID=$RELEASE_ID" >> $GITHUB_ENV - - name: Upload ZIP asset - id: upload_asset - run: | - echo "Lade release_${{ github.ref_name }}.zip (${{ env.ZIP_NAME }}) hoch..." + # - name: Upload ZIP asset + # id: upload_asset + # run: | + # echo "Lade release_${{ github.ref_name }}.zip (${{ env.ZIP_NAME }}) hoch..." - RESPONSE=$(curl -s -k -X POST \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${{ env.ZIP_NAME }}" \ - -H "accept: application/json" \ - -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - -H "Content-Type: multipart/form-data" \ - -F "attachment=@dist/${{ env.ZIP_NAME }}") + # RESPONSE=$(curl -s -k -X POST \ + # "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${{ env.ZIP_NAME }}" \ + # -H "accept: application/json" \ + # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + # -H "Content-Type: multipart/form-data" \ + # -F "attachment=@dist/${{ env.ZIP_NAME }}") - echo "Upload response: $RESPONSE" + # echo "Upload response: $RESPONSE" - DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) - echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT + # DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) + # echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT - - name: Build XML block - id: xmlblock - run: | - NAME="${{ steps.cfg.outputs.name }}" - VERSION="${{ steps.info.outputs.version }}" + # - name: Build XML block + # id: xmlblock + # run: | + # NAME="${{ steps.cfg.outputs.name }}" + # VERSION="${{ steps.info.outputs.version }}" - BLOCK=$(cat < - ${{ steps.cfg.outputs.description }} - ${{ steps.cfg.outputs.qgis_min }} - ${{ steps.cfg.outputs.qgis_max }} - ${{ steps.cfg.outputs.author }} - ${{ steps.cfg.outputs.email }} - ${{ steps.cfg.outputs.homepage }} - ${{ steps.cfg.outputs.tracker }} - ${{ steps.cfg.outputs.repository }} - ${{ steps.upload_asset.outputs.download_url }} - ${{ steps.cfg.outputs.experimental }} - ${{ steps.cfg.outputs.deprecated }} - - EOF - ) + # BLOCK=$(cat < + # ${{ steps.cfg.outputs.description }} + # ${{ steps.cfg.outputs.qgis_min }} + # ${{ steps.cfg.outputs.qgis_max }} + # ${{ steps.cfg.outputs.author }} + # ${{ steps.cfg.outputs.email }} + # ${{ steps.cfg.outputs.homepage }} + # ${{ steps.cfg.outputs.tracker }} + # ${{ steps.cfg.outputs.repository }} + # ${{ steps.upload_asset.outputs.download_url }} + # ${{ steps.cfg.outputs.experimental }} + # ${{ steps.cfg.outputs.deprecated }} + # + # EOF + # ) - { - echo "block<> "$GITHUB_OUTPUT" + # { + # echo "block<> "$GITHUB_OUTPUT" - - name: Dispatch to Repository - shell: bash - run: | - curl -s -X POST \ - -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - -H "Content-Type: application/json" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository_owner }}/Repository/dispatches" \ - -d "{ - \"type\": \"plugin-released\", - \"payload\": { - \"plugin\": \"${{ steps.cfg.outputs.name }}\", - \"channel\": \"${{ steps.info.outputs.channel }}\", - \"xml_block\": \"${{ steps.xmlblock.outputs.block }}\" - } - }" + # - name: Dispatch to Repository + # shell: bash + # run: | + # curl -s -X POST \ + # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + # -H "Content-Type: application/json" \ + # "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository_owner }}/Repository/dispatches" \ + # -d "{ + # \"type\": \"plugin-released\", + # \"payload\": { + # \"plugin\": \"${{ steps.cfg.outputs.name }}\", + # \"channel\": \"${{ steps.info.outputs.channel }}\", + # \"xml_block\": \"${{ steps.xmlblock.outputs.block }}\" + # } + # }" From cb71f30c2983a2a8b285e7055496e2d4338bb561 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 07:27:55 +0100 Subject: [PATCH 041/196] Add release workflow --- .gitea/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 0c71de4..fa3dd45 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -15,6 +15,7 @@ jobs: steps: - name: Notwendige Abhängigkeiten installieren + shell: sh run: | apk add --no-cache git zip curl jq rsync bash git config --global http.sslVerify false From eb1c0fa6b91eb4866709f4cf46edbe8da4adacfc Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 07:29:17 +0100 Subject: [PATCH 042/196] Add release workflow --- .gitea/workflows/release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index fa3dd45..75f763b 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -20,6 +20,9 @@ jobs: apk add --no-cache git zip curl jq rsync bash git config --global http.sslVerify false + - name: Repository auschecken + uses: actions/checkout@v3 + - name: Debug Info run: | echo "Tag: $GITEA_REF_NAME" From a2d8a1f1cfb502e77337c2ed036a20180d579dc0 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 07:36:18 +0100 Subject: [PATCH 043/196] Add release workflow --- .gitea/workflows/release.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 75f763b..4a36332 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -20,6 +20,17 @@ jobs: apk add --no-cache git zip curl jq rsync bash git config --global http.sslVerify false + - name: Remote URL fixen + run: | + CURRENT_URL=$(git config --get remote.origin.url) + echo "Original URL: $CURRENT_URL" + + # Hostnamen durch RELEASE_URL ersetzen + NEW_URL=$(echo "$CURRENT_URL" | sed "s|://[^/]*|://${{ secrets.RELEASE_TOKEN }}:@${{ vars.RELEASE_URL }}|") + echo "Neue URL: $NEW_URL" + + git remote set-url origin "$NEW_URL" + - name: Repository auschecken uses: actions/checkout@v3 From 78035e08b92517ada88550c129306ad63ec8ac51 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 07:38:19 +0100 Subject: [PATCH 044/196] Add release workflow --- .gitea/workflows/release.yml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 4a36332..e714719 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -20,19 +20,11 @@ jobs: apk add --no-cache git zip curl jq rsync bash git config --global http.sslVerify false - - name: Remote URL fixen - run: | - CURRENT_URL=$(git config --get remote.origin.url) - echo "Original URL: $CURRENT_URL" - - # Hostnamen durch RELEASE_URL ersetzen - NEW_URL=$(echo "$CURRENT_URL" | sed "s|://[^/]*|://${{ secrets.RELEASE_TOKEN }}:@${{ vars.RELEASE_URL }}|") - echo "Neue URL: $NEW_URL" - - git remote set-url origin "$NEW_URL" - - name: Repository auschecken uses: actions/checkout@v3 + with: + repository: https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action.git + token: ${{ secrets.RELEASE_TOKEN }} - name: Debug Info run: | From c11afa93836427e8700f1ac03e0c2cf8e74a2a4c Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 07:39:17 +0100 Subject: [PATCH 045/196] Add release workflow --- .gitea/workflows/release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index e714719..e29cb08 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -23,8 +23,7 @@ jobs: - name: Repository auschecken uses: actions/checkout@v3 with: - repository: https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action.git - token: ${{ secrets.RELEASE_TOKEN }} + repository: ${{ secrets.RELEASE_TOKEN }}:@https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action.git - name: Debug Info run: | From 739af302d32fe4ae397a146c469350863b744b1b Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 07:43:56 +0100 Subject: [PATCH 046/196] Add release workflow --- .gitea/workflows/release.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index e29cb08..bc6c361 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -23,7 +23,10 @@ jobs: - name: Repository auschecken uses: actions/checkout@v3 with: - repository: ${{ secrets.RELEASE_TOKEN }}:@https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action.git + repository: AG_QGIS/Plugin_Test_Action.git + fetch-depth: 0 + token: ${{ secrets.RELEASE_TOKEN }} + git_url: https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action.git - name: Debug Info run: | From 46672dbf2bb0fe014883281e220f517f15bdb411 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 07:46:59 +0100 Subject: [PATCH 047/196] Add release workflow --- .gitea/workflows/release.yml | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index bc6c361..60cfc61 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -20,13 +20,20 @@ jobs: apk add --no-cache git zip curl jq rsync bash git config --global http.sslVerify false - - name: Repository auschecken - uses: actions/checkout@v3 - with: - repository: AG_QGIS/Plugin_Test_Action.git - fetch-depth: 0 - token: ${{ secrets.RELEASE_TOKEN }} - git_url: https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action.git + - name: Clone Gitea repo + run: | + git clone https://$RELEASE_TOKEN:x-oauth-basic@entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action.git repo + env: + GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }} + + + # - name: Repository auschecken + # uses: actions/checkout@v3 + # with: + # repository: AG_QGIS/Plugin_Test_Action.git + # fetch-depth: 0 + # token: ${{ secrets.RELEASE_TOKEN }} + # git_url: https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action.git - name: Debug Info run: | From 0ad9d3e1e5e6aa046fc25e010ef3c23d0f17a66e Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 07:57:21 +0100 Subject: [PATCH 048/196] Add release workflow --- .gitea/workflows/release.yml | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 60cfc61..12af293 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -20,11 +20,40 @@ jobs: apk add --no-cache git zip curl jq rsync bash git config --global http.sslVerify false - - name: Clone Gitea repo + - name: Code holen run: | - git clone https://$RELEASE_TOKEN:x-oauth-basic@entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action.git repo + # Tag aus GitHub Actions Kontext extrahieren + TAG="${GITHUB_REF#refs/tags/}" + echo "Tag erkannt: $TAG" + + # Repo-URL dynamisch aus vars und github.repository bauen + REPO_URL="https://${RELEASE_TOKEN}:x-oauth-basic@${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}.git" + echo "Cloning from: $REPO_URL" + + # Repository klonen + git clone "$REPO_URL" repo + cd repo + + # Branch finden, der den Tag enthält + BRANCH=$(git branch -r --contains "$TAG" | head -n 1 | sed 's/origin\///') + + if [ -z "$BRANCH" ]; then + echo "Kein Branch enthält diesen Tag – checkout des Tags direkt" + git checkout "$TAG" + else + echo "Branch gefunden: $BRANCH – checkout" + git checkout "$BRANCH" + fi env: - GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }} + RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} + + + # - name: Repository auschecken + # run: | + # git clone https://$RELEASE_TOKEN:x-oauth-basic@{{ vars.RELEASE_URL }}/${{ github.repository }}.git repo + # cd repo + # env: + # GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }} # - name: Repository auschecken From 6715ce896c9dbd57c4ae2ee3c0f899689a63ca0a Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 08:01:42 +0100 Subject: [PATCH 049/196] Add release workflow --- .gitea/workflows/release.yml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 12af293..af47b4d 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -34,16 +34,7 @@ jobs: git clone "$REPO_URL" repo cd repo - # Branch finden, der den Tag enthält - BRANCH=$(git branch -r --contains "$TAG" | head -n 1 | sed 's/origin\///') - - if [ -z "$BRANCH" ]; then - echo "Kein Branch enthält diesen Tag – checkout des Tags direkt" - git checkout "$TAG" - else - echo "Branch gefunden: $BRANCH – checkout" - git checkout "$BRANCH" - fi + git checkout "$TAG" env: RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} From 2e3325df164299cc87c02a42d6625220e0c8a04a Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 08:16:01 +0100 Subject: [PATCH 050/196] Add release workflow --- .gitea/workflows/release.yml | 40 ++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index af47b4d..9a2fbd9 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -24,11 +24,11 @@ jobs: run: | # Tag aus GitHub Actions Kontext extrahieren TAG="${GITHUB_REF#refs/tags/}" - echo "Tag erkannt: $TAG" + echo "DEBUG | Tag erkannt: $TAG" # Repo-URL dynamisch aus vars und github.repository bauen REPO_URL="https://${RELEASE_TOKEN}:x-oauth-basic@${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}.git" - echo "Cloning from: $REPO_URL" + echo "DEBUG | Klone von: $REPO_URL" # Repository klonen git clone "$REPO_URL" repo @@ -38,35 +38,31 @@ jobs: env: RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} + - name: Version und Kanal bestimmen + id: info + run: | + TAG="${{ github.ref_name }}" + VERSION="${TAG#v}" - # - name: Repository auschecken - # run: | - # git clone https://$RELEASE_TOKEN:x-oauth-basic@{{ vars.RELEASE_URL }}/${{ github.repository }}.git repo - # cd repo - # env: - # GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }} + case "$TAG" in + *-dev*) CHANNEL="unstable" ;; + *-beta*) CHANNEL="testing" ;; + *) CHANNEL="stable" ;; + esac + + echo "version=${VERSION}" >> $GITHUB_OUTPUT + echo "channel=${CHANNEL}" >> $GITHUB_OUTPUT + + echo "DEBUG | Version: $VERSION" + echo "DEBUG | Kanal: $CHANNEL" - # - name: Repository auschecken - # uses: actions/checkout@v3 - # with: - # repository: AG_QGIS/Plugin_Test_Action.git - # fetch-depth: 0 - # token: ${{ secrets.RELEASE_TOKEN }} - # git_url: https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action.git - name: Debug Info run: | echo "Tag: $GITEA_REF_NAME" uname -a - # - name: Checkout - # run: | - # git clone --depth 1 \ - # --branch ${{ github.ref_name }} \ - # https://x-access-token:${{ secrets.RELEASE_TOKEN }}@${{ vars.RELEASE_URL }}/${{ github.repository }}.git \ - # . - # - name: Determine version and channel # id: info # run: | From 141a867dd35c92ca2680200cd1cbc3b055502042 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 08:17:19 +0100 Subject: [PATCH 051/196] Add release workflow --- .gitea/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 9a2fbd9..19ccac3 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -45,9 +45,9 @@ jobs: VERSION="${TAG#v}" case "$TAG" in - *-dev*) CHANNEL="unstable" ;; - *-beta*) CHANNEL="testing" ;; - *) CHANNEL="stable" ;; + *-unstable*) CHANNEL="unstable" ;; + *-testing*) CHANNEL="testing" ;; + *) CHANNEL="stable" ;; esac echo "version=${VERSION}" >> $GITHUB_OUTPUT From 07ec930161b90ddd681fbaf4afa23b91c800d623 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 08:52:35 +0100 Subject: [PATCH 052/196] metadata.txt als Template nach .plugin verschoben --- metadata.txt => .plugin/metadata.template | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename metadata.txt => .plugin/metadata.template (73%) diff --git a/metadata.txt b/.plugin/metadata.template similarity index 73% rename from metadata.txt rename to .plugin/metadata.template index 0fac9f7..ea4a937 100644 --- a/metadata.txt +++ b/.plugin/metadata.template @@ -3,11 +3,11 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.0 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=26.3.1 -author=Michael Otto -email=michael.otto@landkreis-mittelsachsen.de +version=@VERSION@ +author=Daniel Helbig, Michael Otto +email=daniel.helbig@kreis-meissen.de, michael.otto@landkreis-mittelsachsen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action tracker=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action/issues repository=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action -experimental=False +experimental=True deprecated=False \ No newline at end of file From 156c59e7079d94f7856765ca4cb888c6dc8186cc Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 08:53:12 +0100 Subject: [PATCH 053/196] Add release workflow --- .gitea/workflows/release.yml | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 19ccac3..bd9d80e 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -39,7 +39,7 @@ jobs: RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} - name: Version und Kanal bestimmen - id: info + id: releaseinfo run: | TAG="${{ github.ref_name }}" VERSION="${TAG#v}" @@ -56,6 +56,20 @@ jobs: echo "DEBUG | Version: $VERSION" echo "DEBUG | Kanal: $CHANNEL" + - name: metadata.txt erzeugen + run: | + cd repo + + VERSION="${{ steps.releaseinfo.outputs.version }}" + + # Vorlage kopieren + cp .plugin/metadata.template metadata.txt + + # Platzhalter ersetzen + sed -i "s/@VERSION@/${VERSION}/g" metadata.txt + + echo "DEBUG | metadata.txt erzeugt:" + cat metadata.txt - name: Debug Info @@ -63,25 +77,6 @@ jobs: echo "Tag: $GITEA_REF_NAME" uname -a - # - name: Determine version and channel - # id: info - # run: | - # TAG="${{ github.ref_name }}" - # VERSION="${TAG#v}" - - # case "$TAG" in - # *-dev*) CHANNEL="dev" ;; - # *-beta*) CHANNEL="beta" ;; - # *) CHANNEL="stable" ;; - # esac - - # echo "version=${VERSION}" >> $GITHUB_OUTPUT - # echo "channel=${CHANNEL}" >> $GITHUB_OUTPUT - - # # Nur fürs Log: - # echo "VERSION: $VERSION" - # echo "CHANNEL: $CHANNEL" - # - name: Read plugin.cfg # id: cfg # run: | From 9bdff6a681bb70df4f405ff7485c6f537f2bb246 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 08:59:04 +0100 Subject: [PATCH 054/196] Add release workflow --- .gitea/workflows/release.yml | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index bd9d80e..3a31650 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -71,6 +71,44 @@ jobs: echo "DEBUG | metadata.txt erzeugt:" cat metadata.txt + - name: ZIP-Datei erstellen + id: zip + run: | + cd repo + + # Plugin-Ordnername aus .plugin/zip_folder lesen + ZIP_FOLDER=$(cat .plugin/zip_folder) + echo "DEBUG | Plugin-Ordnername: $ZIP_FOLDER" + + VERSION="${{ steps.releaseinfo.outputs.version }}" + REPO_NAME="${GITHUB_REPOSITORY##*/}" + ZIP_NAME="${REPO_NAME}-${VERSION}.zip" + + echo "DEBUG | ZIP wird erzeugt: $ZIP_NAME" + + # Temporären Build-Ordner anlegen + mkdir -p dist/${ZIP_FOLDER} + + # Plugin-Dateien kopieren (alles außer CI-/Meta-Verzeichnisse) + rsync -a \ + --exclude='.git' \ + --exclude='.gitea' \ + --exclude='.plugin' \ + --exclude='dist' \ + ./ dist/${ZIP_FOLDER}/ + + # ZIP erzeugen + cd dist + zip -r "${ZIP_NAME}" "${ZIP_FOLDER}/" \ + -x "*.pyc" -x "*/__pycache__/*" + cd .. + + # ZIP-Name für spätere Steps bereitstellen + echo "zip_name=${ZIP_NAME}" >> $GITHUB_OUTPUT + + echo "DEBUG | ZIP-Datei erzeugt: dist/${ZIP_NAME}" + + - name: Debug Info run: | From b8850219415fd848d4828506e9e48199b5badda7 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 09:01:04 +0100 Subject: [PATCH 055/196] Release v18 --- .plugin/zip_folder | 1 + 1 file changed, 1 insertion(+) create mode 100644 .plugin/zip_folder diff --git a/.plugin/zip_folder b/.plugin/zip_folder new file mode 100644 index 0000000..4572dbb --- /dev/null +++ b/.plugin/zip_folder @@ -0,0 +1 @@ +sn_test \ No newline at end of file From 3f41de4fac85cb2c0479d3d754e7b8bb14106ba2 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 09:04:39 +0100 Subject: [PATCH 056/196] Release v19 --- .gitea/workflows/release.yml | 42 ++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 3a31650..cfd66a1 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -108,6 +108,48 @@ jobs: echo "DEBUG | ZIP-Datei erzeugt: dist/${ZIP_NAME}" + - name: Gitea‑Release erstellen + id: create_release + run: | + TAG="${{ github.ref_name }}" + VERSION="${{ steps.releaseinfo.outputs.version }}" + CHANNEL="${{ steps.releaseinfo.outputs.channel }}" + + echo "Erstelle Release für Tag: $TAG" + echo "Version: $VERSION" + echo "Kanal: $CHANNEL" + + API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases" + + # JSON‑Body erzeugen + JSON=$(jq -n \ + --arg tag "$TAG" \ + --arg name "Version $VERSION" \ + --arg body "Automatisch erzeugtes Release für Kanal: $CHANNEL" \ + '{tag_name: $tag, name: $name, body: $body, draft: false, prerelease: false}') + + echo "Sende API‑Request an: $API_URL" + echo "JSON‑Payload:" + echo "$JSON" + + # Release erstellen + API_RESPONSE=$(curl -s -X POST "$API_URL" \ + -H "accept: application/json" \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + -H "Content-Type: application/json" \ + -d "$JSON") + + RELEASE_ID=$(echo "$API_RESPONSE" | jq -r '.id') + + if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then + echo "Fehler beim Erstellen des Releases!" + echo "API‑Antwort:" + echo "$API_RESPONSE" + exit 1 + fi + + echo "Release erfolgreich erstellt. ID: $RELEASE_ID" + echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT - name: Debug Info From 18e76984bbce0884d019a3d75bdbeb53ed78f072 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 09:11:49 +0100 Subject: [PATCH 057/196] Release v21 --- .gitea/workflows/release.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index cfd66a1..afff978 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -151,6 +151,33 @@ jobs: echo "Release erfolgreich erstellt. ID: $RELEASE_ID" echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT + - name: ZIP-Datei hochladen + run: | + RELEASE_ID="${{ steps.create_release.outputs.release_id }}" + ZIP_NAME="${{ steps.zip.outputs.zip_name }}" + + echo "Lade ZIP-Datei hoch: $ZIP_NAME" + echo "Release-ID: $RELEASE_ID" + + API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=${ZIP_NAME}" + + curl -s -X POST "$API_URL" \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + -H "Content-Type: application/zip" \ + --data-binary "@repo/dist/${ZIP_NAME}" \ + -o upload_response.json + + echo "Upload-Antwort:" + cat upload_response.json + + # Optional: Fehlerprüfung + if jq -e '.id' upload_response.json >/dev/null 2>&1; then + echo "ZIP erfolgreich hochgeladen." + else + echo "Fehler beim Hochladen der ZIP!" + exit 1 + fi + - name: Debug Info run: | From c73cde2e57b990642a1da621e7b8c158be102acc Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 09:12:42 +0100 Subject: [PATCH 058/196] Release v22 --- .gitea/workflows/release.yml | 42 ++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index afff978..a968998 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -151,32 +151,32 @@ jobs: echo "Release erfolgreich erstellt. ID: $RELEASE_ID" echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT - - name: ZIP-Datei hochladen - run: | - RELEASE_ID="${{ steps.create_release.outputs.release_id }}" - ZIP_NAME="${{ steps.zip.outputs.zip_name }}" + - name: ZIP-Datei hochladen + run: | + RELEASE_ID="${{ steps.create_release.outputs.release_id }}" + ZIP_NAME="${{ steps.zip.outputs.zip_name }}" - echo "Lade ZIP-Datei hoch: $ZIP_NAME" - echo "Release-ID: $RELEASE_ID" + echo "Lade ZIP-Datei hoch: $ZIP_NAME" + echo "Release-ID: $RELEASE_ID" - API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=${ZIP_NAME}" + API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=${ZIP_NAME}" - curl -s -X POST "$API_URL" \ - -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - -H "Content-Type: application/zip" \ - --data-binary "@repo/dist/${ZIP_NAME}" \ - -o upload_response.json + curl -s -X POST "$API_URL" \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + -H "Content-Type: application/zip" \ + --data-binary "@repo/dist/${ZIP_NAME}" \ + -o upload_response.json - echo "Upload-Antwort:" - cat upload_response.json + echo "Upload-Antwort:" + cat upload_response.json - # Optional: Fehlerprüfung - if jq -e '.id' upload_response.json >/dev/null 2>&1; then - echo "ZIP erfolgreich hochgeladen." - else - echo "Fehler beim Hochladen der ZIP!" - exit 1 - fi + # Optional: Fehlerprüfung + if jq -e '.id' upload_response.json >/dev/null 2>&1; then + echo "ZIP erfolgreich hochgeladen." + else + echo "Fehler beim Hochladen der ZIP!" + exit 1 + fi - name: Debug Info From efc695457f08be9b43bfe3d4402dc7acc32a571d Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 09:23:18 +0100 Subject: [PATCH 059/196] Release v23 --- .gitea/workflows/release.yml | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index a968998..029da64 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -178,6 +178,53 @@ jobs: exit 1 fi + - name: Payload erzeugen + id: payload + run: | + cd repo + + PLUGIN_NAME=$(grep '^name=' metadata.txt | cut -d '=' -f2) + DESCRIPTION=$(grep '^description=' metadata.txt | cut -d '=' -f2) + AUTHOR=$(grep '^author=' metadata.txt | cut -d '=' -f2) + EMAIL=$(grep '^email=' metadata.txt | cut -d '=' -f2) + + VERSION="${{ steps.releaseinfo.outputs.version }}" + CHANNEL="${{ steps.releaseinfo.outputs.channel }}" + ZIP_NAME="${{ steps.zip.outputs.zip_name }}" + CHANGELOG="${{ steps.changelog.outputs.log }}" + + DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}" + + jq -n \ + --arg plugin "$PLUGIN_NAME" \ + --arg version "$VERSION" \ + --arg channel "$CHANNEL" \ + --arg description "$DESCRIPTION" \ + --arg author "$AUTHOR" \ + --arg email "$EMAIL" \ + --arg url "$DOWNLOAD_URL" \ + --arg changelog "$CHANGELOG" \ + '{ + plugin: $plugin, + version: $version, + channel: $channel, + description: $description, + author: $author, + email: $email, + url: $url, + changelog: $changelog + }' > payload.json + + echo "payload=$(cat payload.json)" >> $GITHUB_OUTPUT + + - name: Repository aktualisieren + run: | + curl -X POST \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + -H "Content-Type: application/json" \ + -d "{\"event_type\": \"update_plugin\", \"client_payload\": ${{ steps.payload.outputs.payload }}}" \ + https://${{ vars.RELEASE_URL }}/api/v1/repos//Repository/dispatches + - name: Debug Info run: | From 049c0f64ed4944c67352e508a9d1ad964ce9d62e Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 09:26:38 +0100 Subject: [PATCH 060/196] Release v24 --- .gitea/workflows/release.yml | 44 +++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 029da64..eccc2ae 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -217,13 +217,45 @@ jobs: echo "payload=$(cat payload.json)" >> $GITHUB_OUTPUT - - name: Repository aktualisieren + - name: Payload erzeugen run: | - curl -X POST \ - -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - -H "Content-Type: application/json" \ - -d "{\"event_type\": \"update_plugin\", \"client_payload\": ${{ steps.payload.outputs.payload }}}" \ - https://${{ vars.RELEASE_URL }}/api/v1/repos//Repository/dispatches + cd repo + + PLUGIN_NAME=$(grep '^name=' metadata.txt | cut -d '=' -f2) + DESCRIPTION=$(grep '^description=' metadata.txt | cut -d '=' -f2) + AUTHOR=$(grep '^author=' metadata.txt | cut -d '=' -f2) + EMAIL=$(grep '^email=' metadata.txt | cut -d '=' -f2) + + VERSION="${{ steps.releaseinfo.outputs.version }}" + CHANNEL="${{ steps.releaseinfo.outputs.channel }}" + ZIP_NAME="${{ steps.zip.outputs.zip_name }}" + CHANGELOG="${{ steps.changelog.outputs.log }}" + + DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}" + + jq -n \ + --arg plugin "$PLUGIN_NAME" \ + --arg version "$VERSION" \ + --arg channel "$CHANNEL" \ + --arg description "$DESCRIPTION" \ + --arg author "$AUTHOR" \ + --arg email "$EMAIL" \ + --arg url "$DOWNLOAD_URL" \ + --arg changelog "$CHANGELOG" \ + '{ + plugin: $plugin, + version: $version, + channel: $channel, + description: $description, + author: $author, + email: $email, + url: $url, + changelog: $changelog + }' > payload.json + + echo "Payload:" + cat payload.json + - name: Debug Info From 88a62af7c863dda4e1c840d033e83dfcb47ecd04 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 09:27:23 +0100 Subject: [PATCH 061/196] Release v25 --- .gitea/workflows/release.yml | 39 ------------------------------------ 1 file changed, 39 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index eccc2ae..e2052d3 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -178,45 +178,6 @@ jobs: exit 1 fi - - name: Payload erzeugen - id: payload - run: | - cd repo - - PLUGIN_NAME=$(grep '^name=' metadata.txt | cut -d '=' -f2) - DESCRIPTION=$(grep '^description=' metadata.txt | cut -d '=' -f2) - AUTHOR=$(grep '^author=' metadata.txt | cut -d '=' -f2) - EMAIL=$(grep '^email=' metadata.txt | cut -d '=' -f2) - - VERSION="${{ steps.releaseinfo.outputs.version }}" - CHANNEL="${{ steps.releaseinfo.outputs.channel }}" - ZIP_NAME="${{ steps.zip.outputs.zip_name }}" - CHANGELOG="${{ steps.changelog.outputs.log }}" - - DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}" - - jq -n \ - --arg plugin "$PLUGIN_NAME" \ - --arg version "$VERSION" \ - --arg channel "$CHANNEL" \ - --arg description "$DESCRIPTION" \ - --arg author "$AUTHOR" \ - --arg email "$EMAIL" \ - --arg url "$DOWNLOAD_URL" \ - --arg changelog "$CHANGELOG" \ - '{ - plugin: $plugin, - version: $version, - channel: $channel, - description: $description, - author: $author, - email: $email, - url: $url, - changelog: $changelog - }' > payload.json - - echo "payload=$(cat payload.json)" >> $GITHUB_OUTPUT - - name: Payload erzeugen run: | cd repo From 75b7e8073adad48330350038e8f5cc26e9f40f1e Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 09:28:31 +0100 Subject: [PATCH 062/196] Release v26 --- .gitea/workflows/release.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index e2052d3..b98ac67 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -217,6 +217,13 @@ jobs: echo "Payload:" cat payload.json + - name: Repository aktualisieren + run: | + curl -X POST \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + -H "Content-Type: application/json" \ + --data-binary @repo/payload.json \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos//Repository/dispatches?event_type=update_plugin" - name: Debug Info From 0ce29c9e848ef75a801737bda6aa60996542e2dd Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 09:36:12 +0100 Subject: [PATCH 063/196] Release v27 --- .gitea/workflows/release.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index b98ac67..5d49950 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -219,11 +219,15 @@ jobs: - name: Repository aktualisieren run: | + OWNER="AG_QGIS" # z. B. dein Benutzername oder deine Organisation + WORKFLOW="update.yml" # Name der Workflow-Datei im Repository-Repo + curl -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ - --data-binary @repo/payload.json \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos//Repository/dispatches?event_type=update_plugin" + -d @repo/payload.json \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + - name: Debug Info From 2e65ec4bc45188153658630dbf02a0b89a36e6e0 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 09:44:03 +0100 Subject: [PATCH 064/196] Release v29 --- .gitea/workflows/release.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 5d49950..dd9f85e 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -225,9 +225,15 @@ jobs: curl -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ - -d @repo/payload.json \ + -d "{\"ref\": \"feature/release\", \"inputs\": {}, \"event_type\": \"update_plugin\", \"client_payload\": $(cat repo/payload.json) }" \ "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + # curl -X POST \ + # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + # -H "Content-Type: application/json" \ + # -d @repo/payload.json \ + # "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + - name: Debug Info From 067e0f31702241f36966ca46a76aeb157965d5c9 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 10:08:03 +0100 Subject: [PATCH 065/196] Release v33 --- .gitea/workflows/release.yml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index dd9f85e..ed03c91 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -219,14 +219,26 @@ jobs: - name: Repository aktualisieren run: | - OWNER="AG_QGIS" # z. B. dein Benutzername oder deine Organisation - WORKFLOW="update.yml" # Name der Workflow-Datei im Repository-Repo + OWNER="AG_QGIS" + WORKFLOW="update.yml" curl -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ - -d "{\"ref\": \"feature/release\", \"inputs\": {}, \"event_type\": \"update_plugin\", \"client_payload\": $(cat repo/payload.json) }" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + -d "{\"ref\": \"feature/release\", \"client_payload\": $(cat repo/payload.json) }" \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches?event_type=update_plugin" + + + # - name: Repository aktualisieren + # run: | + # OWNER="AG_QGIS" # z. B. dein Benutzername oder deine Organisation + # WORKFLOW="update.yml" # Name der Workflow-Datei im Repository-Repo + + # curl -X POST \ + # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + # -H "Content-Type: application/json" \ + # -d "{\"ref\": \"feature/release\", \"inputs\": {}, \"event_type\": \"update_plugin\", \"client_payload\": $(cat repo/payload.json) }" \ + # "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" # curl -X POST \ # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ From c55dedbbe182f34224454b8632e8512ba8f80af3 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 10:10:02 +0100 Subject: [PATCH 066/196] Release v34 --- .gitea/workflows/release.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index ed03c91..c00c91b 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -222,11 +222,20 @@ jobs: OWNER="AG_QGIS" WORKFLOW="update.yml" + # JSON als STRING escapen + PAYLOAD=$(jq -Rs . < repo/payload.json) + curl -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ - -d "{\"ref\": \"feature/release\", \"client_payload\": $(cat repo/payload.json) }" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches?event_type=update_plugin" + -d "{ + \"ref\": \"feature/release\", + \"inputs\": { + \"client_payload\": $PAYLOAD + } + }" \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + # - name: Repository aktualisieren From af43bfeab9eff50dfe32f99fecaa6bbbd3bc5603 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 10:13:36 +0100 Subject: [PATCH 067/196] Release v36 --- .gitea/workflows/release.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index c00c91b..7589add 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -222,22 +222,21 @@ jobs: OWNER="AG_QGIS" WORKFLOW="update.yml" - # JSON als STRING escapen - PAYLOAD=$(jq -Rs . < repo/payload.json) + # payload.json in Base64 umwandeln (Alpine hat base64) + PAYLOAD_B64=$(base64 -w0 repo/payload.json) + + # JSON für Gitea bauen + JSON="{\"ref\":\"feature/release\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" curl -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ - -d "{ - \"ref\": \"feature/release\", - \"inputs\": { - \"client_payload\": $PAYLOAD - } - }" \ + -d "$JSON" \ "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + # - name: Repository aktualisieren # run: | # OWNER="AG_QGIS" # z. B. dein Benutzername oder deine Organisation From 44aae815f586fe4edfbd3e10114136c01e56d216 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 10:15:05 +0100 Subject: [PATCH 068/196] Release v37 --- .gitea/workflows/release.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 7589add..3e06ae2 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -222,12 +222,15 @@ jobs: OWNER="AG_QGIS" WORKFLOW="update.yml" - # payload.json in Base64 umwandeln (Alpine hat base64) + # payload.json in Base64 umwandeln PAYLOAD_B64=$(base64 -w0 repo/payload.json) # JSON für Gitea bauen JSON="{\"ref\":\"feature/release\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" + echo "Sende JSON:" + echo "$JSON" + curl -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ @@ -237,6 +240,7 @@ jobs: + # - name: Repository aktualisieren # run: | # OWNER="AG_QGIS" # z. B. dein Benutzername oder deine Organisation From 2cb504ba51db70dc68456ca0ee06b700d66a265a Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 10:18:46 +0100 Subject: [PATCH 069/196] Release v38 --- .gitea/workflows/release.yml | 223 +---------------------------------- 1 file changed, 5 insertions(+), 218 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 3e06ae2..b6d735c 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -1,4 +1,3 @@ -# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json name: Release Plugin on: @@ -220,227 +219,15 @@ jobs: - name: Repository aktualisieren run: | OWNER="AG_QGIS" - WORKFLOW="update.yml" - - # payload.json in Base64 umwandeln PAYLOAD_B64=$(base64 -w0 repo/payload.json) - # JSON für Gitea bauen - JSON="{\"ref\":\"feature/release\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" - - echo "Sende JSON:" - echo "$JSON" + JSON=$(jq -n --arg p "$PAYLOAD_B64" '{ + event_type: "update_plugin", + client_payload: { payload: $p } + }') curl -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ -d "$JSON" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" - - - - - - # - name: Repository aktualisieren - # run: | - # OWNER="AG_QGIS" # z. B. dein Benutzername oder deine Organisation - # WORKFLOW="update.yml" # Name der Workflow-Datei im Repository-Repo - - # curl -X POST \ - # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - # -H "Content-Type: application/json" \ - # -d "{\"ref\": \"feature/release\", \"inputs\": {}, \"event_type\": \"update_plugin\", \"client_payload\": $(cat repo/payload.json) }" \ - # "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" - - # curl -X POST \ - # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - # -H "Content-Type: application/json" \ - # -d @repo/payload.json \ - # "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" - - - - - name: Debug Info - run: | - echo "Tag: $GITEA_REF_NAME" - uname -a - - # - name: Read plugin.cfg - # id: cfg - # run: | - # CFG=".plugin/plugin.cfg" - - # get_value() { - # grep -i "^$1" "$CFG" | head -1 | cut -d= -f2- | tr -d '\r' | xargs - # } - - # echo "zip_folder=$(get_value zip_folder)" >> $GITHUB_OUTPUT - # echo "name=$(get_value name)" >> $GITHUB_OUTPUT - # echo "qgis_min=$(get_value qgisMinimumVersion)" >> $GITHUB_OUTPUT - # echo "qgis_max=$(get_value qgisMaximumVersion)" >> $GITHUB_OUTPUT - # echo "description=$(get_value description)" >> $GITHUB_OUTPUT - # echo "author=$(get_value author)" >> $GITHUB_OUTPUT - # echo "email=$(get_value email)" >> $GITHUB_OUTPUT - # echo "homepage=$(get_value homepage)" >> $GITHUB_OUTPUT - # echo "tracker=$(get_value tracker)" >> $GITHUB_OUTPUT - # echo "repository=$(get_value repository)" >> $GITHUB_OUTPUT - # echo "experimental=$(get_value experimental)" >> $GITHUB_OUTPUT - # echo "deprecated=$(get_value deprecated)" >> $GITHUB_OUTPUT - - # # Nur fürs Log: - # echo "zip_folder=$(get_value zip_folder)" - # echo "name=$(get_value name)" - # echo "qgis_min=$(get_value qgisMinimumVersion)" - # echo "qgis_max=$(get_value qgisMaximumVersion)" - # echo "description=$(get_value description)" - # echo "author=$(get_value author)" - # echo "email=$(get_value email)" - # echo "homepage=$(get_value homepage)" - # echo "tracker=$(get_value tracker)" - # echo "repository=$(get_value repository)" - # echo "experimental=$(get_value experimental)" - # echo "deprecated=$(get_value deprecated)" - - # - name: Generate metadata.txt - # run: | - # VERSION="${{ steps.info.outputs.version }}" - # CHANGELOG=$(cat .plugin/changelog.txt) - - # cat > metadata.txt << EOF - # [general] - # name=${{ steps.cfg.outputs.name }} - # version=${VERSION} - # qgisMinimumVersion=${{ steps.cfg.outputs.qgis_min }} - # qgisMaximumVersion=${{ steps.cfg.outputs.qgis_max }} - # description=${{ steps.cfg.outputs.description }} - # author=${{ steps.cfg.outputs.author }} - # email=${{ steps.cfg.outputs.email }} - # homepage=${{ steps.cfg.outputs.homepage }} - # tracker=${{ steps.cfg.outputs.tracker }} - # repository=${{ steps.cfg.outputs.repository }} - # experimental=${{ steps.cfg.outputs.experimental }} - # deprecated=${{ steps.cfg.outputs.deprecated }} - # changelog=${VERSION} - # $(cat .plugin/changelog.txt) - # EOF - - # # Nur fürs Log: - # cat metadata.txt - - # - name: Build plugin ZIP - # run: | - # REPO_NAME="${{ github.event.repository.name }}" - # ZIP_FOLDER="${{ steps.cfg.outputs.zip_folder }}" - # VERSION="${{ steps.info.outputs.version }}" - # ZIP_NAME="${REPO_NAME}-${VERSION}.zip" - - # # Temporären Ordner mit zip_folder-Namen anlegen - # mkdir -p dist/${ZIP_FOLDER} - - # # Alle Plugin-Dateien hineinkopieren (ohne .gitea, .plugin, dist) - # rsync -a \ - # --exclude='.gitea' \ - # --exclude='.plugin' \ - # --exclude='.git' \ - # --exclude='dist' \ - # ./ dist/${ZIP_FOLDER}/ - - # # ZIP bauen - # cd dist - # zip -r ${ZIP_NAME} ${ZIP_FOLDER}/ \ - # -x "*.pyc" -x "*/__pycache__/*" - # cd .. - - # echo "ZIP_NAME=${ZIP_NAME}" >> $GITHUB_ENV - - # # Nur fürs Log: - # echo "ZIP_NAME=${ZIP_NAME}" - - # - name: Create Gitea Release - # id: create_release - # run: | - # echo "Kommuniziere mit Gitea API über HTTPS..." - # API_RESPONSE=$(curl -s -k -X POST "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases" \ - # -H "accept: application/json" \ - # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - # -H "Content-Type: application/json" \ - # -d '{ - # "body": "Dieses Release wurde automatisch vom Gitea Runner erstellt.", - # "draft": false, - # "name": "Version ${{ github.ref_name }}", - # "prerelease": false, - # "tag_name": "${{ github.ref_name }}" - # }') - - # RELEASE_ID=$(echo $API_RESPONSE | jq -r '.id') - - # if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then - # echo "Fehler beim Erstellen des Releases. API Antwort:" - # echo $API_RESPONSE - # exit 1 - # fi - - # echo "Release ID: $RELEASE_ID" - # echo "RELEASE_ID=$RELEASE_ID" >> $GITHUB_ENV - - # - name: Upload ZIP asset - # id: upload_asset - # run: | - # echo "Lade release_${{ github.ref_name }}.zip (${{ env.ZIP_NAME }}) hoch..." - - # RESPONSE=$(curl -s -k -X POST \ - # "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${{ env.ZIP_NAME }}" \ - # -H "accept: application/json" \ - # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - # -H "Content-Type: multipart/form-data" \ - # -F "attachment=@dist/${{ env.ZIP_NAME }}") - - # echo "Upload response: $RESPONSE" - - # DOWNLOAD_URL=$(echo "$RESPONSE" | grep -o '"browser_download_url":"[^"]*' | cut -d'"' -f4) - # echo "download_url=${DOWNLOAD_URL}" >> $GITHUB_OUTPUT - - # - name: Build XML block - # id: xmlblock - # run: | - # NAME="${{ steps.cfg.outputs.name }}" - # VERSION="${{ steps.info.outputs.version }}" - - # BLOCK=$(cat < - # ${{ steps.cfg.outputs.description }} - # ${{ steps.cfg.outputs.qgis_min }} - # ${{ steps.cfg.outputs.qgis_max }} - # ${{ steps.cfg.outputs.author }} - # ${{ steps.cfg.outputs.email }} - # ${{ steps.cfg.outputs.homepage }} - # ${{ steps.cfg.outputs.tracker }} - # ${{ steps.cfg.outputs.repository }} - # ${{ steps.upload_asset.outputs.download_url }} - # ${{ steps.cfg.outputs.experimental }} - # ${{ steps.cfg.outputs.deprecated }} - # - # EOF - # ) - - # { - # echo "block<> "$GITHUB_OUTPUT" - - # - name: Dispatch to Repository - # shell: bash - # run: | - # curl -s -X POST \ - # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - # -H "Content-Type: application/json" \ - # "https://${{ vars.RELEASE_URL }}/api/v1/repos/${{ github.repository_owner }}/Repository/dispatches" \ - # -d "{ - # \"type\": \"plugin-released\", - # \"payload\": { - # \"plugin\": \"${{ steps.cfg.outputs.name }}\", - # \"channel\": \"${{ steps.info.outputs.channel }}\", - # \"xml_block\": \"${{ steps.xmlblock.outputs.block }}\" - # } - # }" + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/dispatches" \ No newline at end of file From f77a8d34a0bc4ec9de676b3d9228f2f643e4bb55 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 10:21:27 +0100 Subject: [PATCH 070/196] Release v39 --- .gitea/workflows/release.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index b6d735c..0077fef 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -219,15 +219,20 @@ jobs: - name: Repository aktualisieren run: | OWNER="AG_QGIS" + WORKFLOW="update.yml" + + # payload.json in Base64 umwandeln PAYLOAD_B64=$(base64 -w0 repo/payload.json) - JSON=$(jq -n --arg p "$PAYLOAD_B64" '{ - event_type: "update_plugin", - client_payload: { payload: $p } - }') + # JSON für Gitea bauen + JSON="{\"ref\":\"feature/release\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" + + echo "Sende JSON:" + echo "$JSON" curl -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ -d "$JSON" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/dispatches" \ No newline at end of file + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + From a69d00df31d339ff5b11e59358792890c76cb612 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 11:14:22 +0100 Subject: [PATCH 071/196] auf plugin.info umgestellt --- .gitea/workflows/release.yml | 169 +++++++++++++++++++---- .gitignore | 3 +- .plugin/zip_folder | 1 - .plugin/plugin.cfg => plugin.info | 17 ++- {.plugin => templates}/metadata.template | 4 +- 5 files changed, 152 insertions(+), 42 deletions(-) delete mode 100644 .plugin/zip_folder rename .plugin/plugin.cfg => plugin.info (66%) rename {.plugin => templates}/metadata.template (85%) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 0077fef..f5c9ce8 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -55,28 +55,95 @@ jobs: echo "DEBUG | Version: $VERSION" echo "DEBUG | Kanal: $CHANNEL" + # - name: metadata.txt erzeugen + # run: | + # cd repo + + # VERSION="${{ steps.releaseinfo.outputs.version }}" + + # # Vorlage kopieren + # cp .plugin/metadata.template metadata.txt + + # # Platzhalter ersetzen + # sed -i "s/@VERSION@/${VERSION}/g" metadata.txt + + # echo "DEBUG | metadata.txt erzeugt:" + # cat metadata.txt + + - name: plugin.info einlesen + id: info + run: | + cd repo + while IFS='=' read -r key value; do + echo "$key=$value" >> $GITHUB_OUTPUT + done < plugin.info + + echo "DEBUG | plugin.info geladen:" + cat plugin.info + - name: metadata.txt erzeugen run: | cd repo - VERSION="${{ steps.releaseinfo.outputs.version }}" + TEMPLATE=".plugin/metadata.template" + OUT="metadata.txt" - # Vorlage kopieren - cp .plugin/metadata.template metadata.txt + CONTENT=$(cat "$TEMPLATE") - # Platzhalter ersetzen - sed -i "s/@VERSION@/${VERSION}/g" metadata.txt + CONTENT="${CONTENT//\{\{NAME\}\}/${{ steps.info.outputs.name }}}" + CONTENT="${CONTENT//\{\{DESCRIPTION\}\}/${{ steps.info.outputs.description }}}" + CONTENT="${CONTENT//\{\{AUTHOR\}\}/${{ steps.info.outputs.author }}}" + CONTENT="${CONTENT//\{\{EMAIL\}\}/${{ steps.info.outputs.email }}}" + CONTENT="${CONTENT//\{\{VERSION\}\}/${{ steps.releaseinfo.outputs.version }}}" + + printf "%s\n" "$CONTENT" > "$OUT" echo "DEBUG | metadata.txt erzeugt:" cat metadata.txt + # - name: ZIP-Datei erstellen + # id: zip + # run: | + # cd repo + + # # Plugin-Ordnername aus .plugin/zip_folder lesen + # ZIP_FOLDER=$(cat .plugin/zip_folder) + # echo "DEBUG | Plugin-Ordnername: $ZIP_FOLDER" + + # VERSION="${{ steps.releaseinfo.outputs.version }}" + # REPO_NAME="${GITHUB_REPOSITORY##*/}" + # ZIP_NAME="${REPO_NAME}-${VERSION}.zip" + + # echo "DEBUG | ZIP wird erzeugt: $ZIP_NAME" + + # # Temporären Build-Ordner anlegen + # mkdir -p dist/${ZIP_FOLDER} + + # # Plugin-Dateien kopieren (alles außer CI-/Meta-Verzeichnisse) + # rsync -a \ + # --exclude='.git' \ + # --exclude='.gitea' \ + # --exclude='.plugin' \ + # --exclude='dist' \ + # ./ dist/${ZIP_FOLDER}/ + + # # ZIP erzeugen + # cd dist + # zip -r "${ZIP_NAME}" "${ZIP_FOLDER}/" \ + # -x "*.pyc" -x "*/__pycache__/*" + # cd .. + + # # ZIP-Name für spätere Steps bereitstellen + # echo "zip_name=${ZIP_NAME}" >> $GITHUB_OUTPUT + + # echo "DEBUG | ZIP-Datei erzeugt: dist/${ZIP_NAME}" + - name: ZIP-Datei erstellen id: zip run: | cd repo - # Plugin-Ordnername aus .plugin/zip_folder lesen - ZIP_FOLDER=$(cat .plugin/zip_folder) + ZIP_FOLDER="${{ steps.info.outputs.zip_folder }}" echo "DEBUG | Plugin-Ordnername: $ZIP_FOLDER" VERSION="${{ steps.releaseinfo.outputs.version }}" @@ -85,10 +152,8 @@ jobs: echo "DEBUG | ZIP wird erzeugt: $ZIP_NAME" - # Temporären Build-Ordner anlegen mkdir -p dist/${ZIP_FOLDER} - # Plugin-Dateien kopieren (alles außer CI-/Meta-Verzeichnisse) rsync -a \ --exclude='.git' \ --exclude='.gitea' \ @@ -96,17 +161,13 @@ jobs: --exclude='dist' \ ./ dist/${ZIP_FOLDER}/ - # ZIP erzeugen cd dist zip -r "${ZIP_NAME}" "${ZIP_FOLDER}/" \ -x "*.pyc" -x "*/__pycache__/*" cd .. - # ZIP-Name für spätere Steps bereitstellen echo "zip_name=${ZIP_NAME}" >> $GITHUB_OUTPUT - echo "DEBUG | ZIP-Datei erzeugt: dist/${ZIP_NAME}" - - name: Gitea‑Release erstellen id: create_release run: | @@ -177,31 +238,64 @@ jobs: exit 1 fi + # - name: Payload erzeugen + # run: | + # cd repo + + # PLUGIN_NAME=$(grep '^name=' metadata.txt | cut -d '=' -f2) + # DESCRIPTION=$(grep '^description=' metadata.txt | cut -d '=' -f2) + # AUTHOR=$(grep '^author=' metadata.txt | cut -d '=' -f2) + # EMAIL=$(grep '^email=' metadata.txt | cut -d '=' -f2) + + # VERSION="${{ steps.releaseinfo.outputs.version }}" + # CHANNEL="${{ steps.releaseinfo.outputs.channel }}" + # ZIP_NAME="${{ steps.zip.outputs.zip_name }}" + # CHANGELOG="${{ steps.changelog.outputs.log }}" + + # DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}" + + # jq -n \ + # --arg plugin "$PLUGIN_NAME" \ + # --arg version "$VERSION" \ + # --arg channel "$CHANNEL" \ + # --arg description "$DESCRIPTION" \ + # --arg author "$AUTHOR" \ + # --arg email "$EMAIL" \ + # --arg url "$DOWNLOAD_URL" \ + # --arg changelog "$CHANGELOG" \ + # '{ + # plugin: $plugin, + # version: $version, + # channel: $channel, + # description: $description, + # author: $author, + # email: $email, + # url: $url, + # changelog: $changelog + # }' > payload.json + + # echo "Payload:" + # cat payload.json + - name: Payload erzeugen run: | cd repo - PLUGIN_NAME=$(grep '^name=' metadata.txt | cut -d '=' -f2) - DESCRIPTION=$(grep '^description=' metadata.txt | cut -d '=' -f2) - AUTHOR=$(grep '^author=' metadata.txt | cut -d '=' -f2) - EMAIL=$(grep '^email=' metadata.txt | cut -d '=' -f2) - VERSION="${{ steps.releaseinfo.outputs.version }}" CHANNEL="${{ steps.releaseinfo.outputs.channel }}" ZIP_NAME="${{ steps.zip.outputs.zip_name }}" - CHANGELOG="${{ steps.changelog.outputs.log }}" DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}" jq -n \ - --arg plugin "$PLUGIN_NAME" \ + --arg plugin "${{ steps.info.outputs.name }}" \ --arg version "$VERSION" \ --arg channel "$CHANNEL" \ - --arg description "$DESCRIPTION" \ - --arg author "$AUTHOR" \ - --arg email "$EMAIL" \ + --arg description "${{ steps.info.outputs.description }}" \ + --arg author "${{ steps.info.outputs.author }}" \ + --arg email "${{ steps.info.outputs.email }}" \ --arg url "$DOWNLOAD_URL" \ - --arg changelog "$CHANGELOG" \ + --arg changelog "Automatischer Release" \ '{ plugin: $plugin, version: $version, @@ -213,21 +307,39 @@ jobs: changelog: $changelog }' > payload.json - echo "Payload:" + echo "DEBUG | Payload erzeugt:" cat payload.json + # - name: Repository aktualisieren + # run: | + # OWNER="AG_QGIS" + # WORKFLOW="update.yml" + + # # payload.json in Base64 umwandeln + # PAYLOAD_B64=$(base64 -w0 repo/payload.json) + + # # JSON für Gitea bauen + # JSON="{\"ref\":\"feature/release\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" + + # echo "Sende JSON:" + # echo "$JSON" + + # curl -X POST \ + # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + # -H "Content-Type: application/json" \ + # -d "$JSON" \ + # "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + - name: Repository aktualisieren run: | OWNER="AG_QGIS" WORKFLOW="update.yml" - # payload.json in Base64 umwandeln PAYLOAD_B64=$(base64 -w0 repo/payload.json) - # JSON für Gitea bauen JSON="{\"ref\":\"feature/release\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" - echo "Sende JSON:" + echo "DEBUG | Sende JSON:" echo "$JSON" curl -X POST \ @@ -235,4 +347,3 @@ jobs: -H "Content-Type: application/json" \ -d "$JSON" \ "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" - diff --git a/.gitignore b/.gitignore index 1e87eb9..bab976c 100644 --- a/.gitignore +++ b/.gitignore @@ -174,4 +174,5 @@ cython_debug/ # PyPI configuration file .pypirc -metadata.txt \ No newline at end of file +metadata.txt +release.cmd \ No newline at end of file diff --git a/.plugin/zip_folder b/.plugin/zip_folder deleted file mode 100644 index 4572dbb..0000000 --- a/.plugin/zip_folder +++ /dev/null @@ -1 +0,0 @@ -sn_test \ No newline at end of file diff --git a/.plugin/plugin.cfg b/plugin.info similarity index 66% rename from .plugin/plugin.cfg rename to plugin.info index 6bd305f..207e5a2 100644 --- a/.plugin/plugin.cfg +++ b/plugin.info @@ -1,14 +1,13 @@ -[general] -zip_folder=mein_plugin_ordner name=LNO Sachsen | Plugin Test Action -qgisMinimumVersion=3.0 -qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=26.3.1 -author=Michael Otto -email=michael.otto@landkreis-mittelsachsen.de +version=@VERSION@ +author=Daniel Helbig, Michael Otto +email=daniel.helbig@kreis-meissen.de, michael.otto@landkreis-mittelsachsen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action tracker=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action/issues repository=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action -experimental=False -deprecated=False \ No newline at end of file +qgisMinimumVersion=3.0 +qgisMaximumVersion=3.99 +deprecated=False +experimental=True +zip_folder=plugin_folder diff --git a/.plugin/metadata.template b/templates/metadata.template similarity index 85% rename from .plugin/metadata.template rename to templates/metadata.template index ea4a937..8a2c85e 100644 --- a/.plugin/metadata.template +++ b/templates/metadata.template @@ -1,8 +1,8 @@ [general] -name=LNO Sachsen | Plugin Test Action +name={{PLUGIN}} qgisMinimumVersion=3.0 qgisMaximumVersion=3.99 -description=Test plugin for release pipeline +description={{DESCRIPTION}} version=@VERSION@ author=Daniel Helbig, Michael Otto email=daniel.helbig@kreis-meissen.de, michael.otto@landkreis-mittelsachsen.de From 495a4ac0499e884a86210352263b09a557ee02cb Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 11:16:03 +0100 Subject: [PATCH 072/196] Pfad der metadate.template angepasst --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index f5c9ce8..bed462f 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -85,7 +85,7 @@ jobs: run: | cd repo - TEMPLATE=".plugin/metadata.template" + TEMPLATE="templates/metadata.template" OUT="metadata.txt" CONTENT=$(cat "$TEMPLATE") From 5d12fefb1d6cf19a85da212fd0e72f733226a7bc Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 11:28:58 +0100 Subject: [PATCH 073/196] Test komplette metadata.txt --- .gitea/workflows/release.yml | 10 +++++++++- templates/metadata.template | 23 ++++++++++++----------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index bed462f..9f33aec 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -91,10 +91,18 @@ jobs: CONTENT=$(cat "$TEMPLATE") CONTENT="${CONTENT//\{\{NAME\}\}/${{ steps.info.outputs.name }}}" + CONTENT="${CONTENT//\{\{QGIS_MIN\}\}/${{ steps.info.outputs.qgisMinimumVersion }}}" + CONTENT="${CONTENT//\{\{QGIS_MAX\}\}/${{ steps.info.outputs.qgisMaximumVersion }}}" CONTENT="${CONTENT//\{\{DESCRIPTION\}\}/${{ steps.info.outputs.description }}}" + CONTENT="${CONTENT//\{\{VERSION\}\}/${{ steps.releaseinfo.outputs.version }}}" CONTENT="${CONTENT//\{\{AUTHOR\}\}/${{ steps.info.outputs.author }}}" CONTENT="${CONTENT//\{\{EMAIL\}\}/${{ steps.info.outputs.email }}}" - CONTENT="${CONTENT//\{\{VERSION\}\}/${{ steps.releaseinfo.outputs.version }}}" + CONTENT="${CONTENT//\{\{HOMEPAGE\}\}/${{ steps.info.outputs.homepage }}}" + CONTENT="${CONTENT//\{\{TRACKER\}\}/${{ steps.info.outputs.tracker }}}" + CONTENT="${CONTENT//\{\{REPOSITORY\}\}/${{ steps.info.outputs.repository }}}" + CONTENT="${CONTENT//\{\{EXPERIMENTAL\}\}/${{ steps.info.outputs.experimental }}}" + CONTENT="${CONTENT//\{\{DEPRECATED\}\}/${{ steps.info.outputs.deprecated }}}" + CONTENT="${CONTENT//\{\{QT6\}\}/${{ steps.info.outputs.supportsQt6 }}}" printf "%s\n" "$CONTENT" > "$OUT" diff --git a/templates/metadata.template b/templates/metadata.template index 8a2c85e..5080ef5 100644 --- a/templates/metadata.template +++ b/templates/metadata.template @@ -1,13 +1,14 @@ [general] -name={{PLUGIN}} -qgisMinimumVersion=3.0 -qgisMaximumVersion=3.99 +name={{NAME}} +qgisMinimumVersion={{QGIS_MIN}} +qgisMaximumVersion={{QGIS_MAX}} description={{DESCRIPTION}} -version=@VERSION@ -author=Daniel Helbig, Michael Otto -email=daniel.helbig@kreis-meissen.de, michael.otto@landkreis-mittelsachsen.de -homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action -tracker=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action/issues -repository=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action -experimental=True -deprecated=False \ No newline at end of file +version={{VERSION}} +author={{AUTHOR}} +email={{EMAIL}} +homepage={{HOMEPAGE}} +tracker={{TRACKER}} +repository={{REPOSITORY}} +experimental={{EXPERIMENTAL}} +deprecated={{DEPRECATED}} +supportsQt6={{QT6}} \ No newline at end of file From 2eacee23f56e61771235a9663e94350f4617b7d4 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 12:09:26 +0100 Subject: [PATCH 074/196] =?UTF-8?q?Payload=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 49 ++++++++++++++++++++++++------------ plugin.info | 2 ++ 2 files changed, 35 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 9f33aec..e482a43 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -296,28 +296,45 @@ jobs: DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}" jq -n \ - --arg plugin "${{ steps.info.outputs.name }}" \ - --arg version "$VERSION" \ - --arg channel "$CHANNEL" \ - --arg description "${{ steps.info.outputs.description }}" \ - --arg author "${{ steps.info.outputs.author }}" \ - --arg email "${{ steps.info.outputs.email }}" \ - --arg url "$DOWNLOAD_URL" \ - --arg changelog "Automatischer Release" \ + --arg plugin "${{ steps.info.outputs.name }}" \ + --arg version "$VERSION" \ + --arg channel "$CHANNEL" \ + --arg description "${{ steps.info.outputs.description }}" \ + --arg author "${{ steps.info.outputs.author }}" \ + --arg email "${{ steps.info.outputs.email }}" \ + --arg qgis_min "${{ steps.info.outputs.qgisMinimumVersion }}" \ + --arg qgis_max "${{ steps.info.outputs.qgisMaximumVersion }}" \ + --arg homepage "${{ steps.info.outputs.homepage }}" \ + --arg tracker "${{ steps.info.outputs.tracker }}" \ + --arg repository "${{ steps.info.outputs.repository }}" \ + --arg experimental "${{ steps.info.outputs.experimental }}" \ + --arg deprecated "${{ steps.info.outputs.deprecated }}" \ + --arg qt6 "${{ steps.info.outputs.supportsQt6 }}" \ + --arg url "$DOWNLOAD_URL" \ + --arg changelog "Automatischer Release" \ '{ - plugin: $plugin, - version: $version, - channel: $channel, - description: $description, - author: $author, - email: $email, - url: $url, - changelog: $changelog + plugin: $plugin, + version: $version, + channel: $channel, + description: $description, + author: $author, + email: $email, + qgis_min: $qgis_min, + qgis_max: $qgis_max, + homepage: $homepage, + tracker: $tracker, + repository: $repository, + experimental: $experimental, + deprecated: $deprecated, + qt6: $qt6, + url: $url, + changelog: $changelog }' > payload.json echo "DEBUG | Payload erzeugt:" cat payload.json + # - name: Repository aktualisieren # run: | # OWNER="AG_QGIS" diff --git a/plugin.info b/plugin.info index 207e5a2..36b9751 100644 --- a/plugin.info +++ b/plugin.info @@ -10,4 +10,6 @@ qgisMinimumVersion=3.0 qgisMaximumVersion=3.99 deprecated=False experimental=True +supportsQt6=Yes + zip_folder=plugin_folder From 4790001f30d11685e7f0506e4dca566203a77e79 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 12:18:43 +0100 Subject: [PATCH 075/196] Name und ID angepasst --- .gitea/workflows/release.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index e482a43..15d5518 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -296,7 +296,7 @@ jobs: DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}" jq -n \ - --arg plugin "${{ steps.info.outputs.name }}" \ + --arg name "${{ steps.info.outputs.name }}" \ --arg version "$VERSION" \ --arg channel "$CHANNEL" \ --arg description "${{ steps.info.outputs.description }}" \ @@ -310,10 +310,11 @@ jobs: --arg experimental "${{ steps.info.outputs.experimental }}" \ --arg deprecated "${{ steps.info.outputs.deprecated }}" \ --arg qt6 "${{ steps.info.outputs.supportsQt6 }}" \ + --arg id "${{ steps.info.outputs.zip_folder }}" \ --arg url "$DOWNLOAD_URL" \ --arg changelog "Automatischer Release" \ '{ - plugin: $plugin, + name: $name, version: $version, channel: $channel, description: $description, @@ -327,6 +328,7 @@ jobs: experimental: $experimental, deprecated: $deprecated, qt6: $qt6, + id: $id, url: $url, changelog: $changelog }' > payload.json From 0fa2861040c6bc483eeecac0020455a9f6c69c67 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 12:50:29 +0100 Subject: [PATCH 076/196] Optimierungen --- .gitea/workflows/release.yml | 6 +++--- plugin.info | 4 ---- templates/metadata.template | 6 +++--- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 15d5518..825a7fa 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -97,9 +97,9 @@ jobs: CONTENT="${CONTENT//\{\{VERSION\}\}/${{ steps.releaseinfo.outputs.version }}}" CONTENT="${CONTENT//\{\{AUTHOR\}\}/${{ steps.info.outputs.author }}}" CONTENT="${CONTENT//\{\{EMAIL\}\}/${{ steps.info.outputs.email }}}" - CONTENT="${CONTENT//\{\{HOMEPAGE\}\}/${{ steps.info.outputs.homepage }}}" - CONTENT="${CONTENT//\{\{TRACKER\}\}/${{ steps.info.outputs.tracker }}}" - CONTENT="${CONTENT//\{\{REPOSITORY\}\}/${{ steps.info.outputs.repository }}}" + CONTENT="${CONTENT//\{\{HOMEPAGE\}\}/${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}}" + CONTENT="${CONTENT//\{\{TRACKER\}\}/${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}}" + CONTENT="${CONTENT//\{\{REPOSITORY\}\}/${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}}" CONTENT="${CONTENT//\{\{EXPERIMENTAL\}\}/${{ steps.info.outputs.experimental }}}" CONTENT="${CONTENT//\{\{DEPRECATED\}\}/${{ steps.info.outputs.deprecated }}}" CONTENT="${CONTENT//\{\{QT6\}\}/${{ steps.info.outputs.supportsQt6 }}}" diff --git a/plugin.info b/plugin.info index 36b9751..ae13d8a 100644 --- a/plugin.info +++ b/plugin.info @@ -1,11 +1,7 @@ name=LNO Sachsen | Plugin Test Action description=Test plugin for release pipeline -version=@VERSION@ author=Daniel Helbig, Michael Otto email=daniel.helbig@kreis-meissen.de, michael.otto@landkreis-mittelsachsen.de -homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action -tracker=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action/issues -repository=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action qgisMinimumVersion=3.0 qgisMaximumVersion=3.99 deprecated=False diff --git a/templates/metadata.template b/templates/metadata.template index 5080ef5..9b67d67 100644 --- a/templates/metadata.template +++ b/templates/metadata.template @@ -6,9 +6,9 @@ description={{DESCRIPTION}} version={{VERSION}} author={{AUTHOR}} email={{EMAIL}} -homepage={{HOMEPAGE}} -tracker={{TRACKER}} -repository={{REPOSITORY}} +homepage=https://{{HOMEPAGE}} +tracker=https://{{TRACKER}}/issues +repository=https://{{REPOSITORY}} experimental={{EXPERIMENTAL}} deprecated={{DEPRECATED}} supportsQt6={{QT6}} \ No newline at end of file From dac2a8e97337b0a67f1c5b9b13db7d737e7f5a73 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 12:55:38 +0100 Subject: [PATCH 077/196] Release v57 --- .gitea/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 825a7fa..feed553 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -304,9 +304,9 @@ jobs: --arg email "${{ steps.info.outputs.email }}" \ --arg qgis_min "${{ steps.info.outputs.qgisMinimumVersion }}" \ --arg qgis_max "${{ steps.info.outputs.qgisMaximumVersion }}" \ - --arg homepage "${{ steps.info.outputs.homepage }}" \ - --arg tracker "${{ steps.info.outputs.tracker }}" \ - --arg repository "${{ steps.info.outputs.repository }}" \ + --arg homepage "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ + --arg tracker "$${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ + --arg repository "$${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ --arg experimental "${{ steps.info.outputs.experimental }}" \ --arg deprecated "${{ steps.info.outputs.deprecated }}" \ --arg qt6 "${{ steps.info.outputs.supportsQt6 }}" \ From a6837e5fd259e5ae8af0a9a4f0d0762b0bd5bbca Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 13:44:48 +0100 Subject: [PATCH 078/196] changelog in release.yml aufgenommen --- .gitea/workflows/release.yml | 256 +++++++------------------ .plugin/changelog.txt => changelog.txt | 1 - plugin.info | 2 +- 3 files changed, 68 insertions(+), 191 deletions(-) rename .plugin/changelog.txt => changelog.txt (92%) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index feed553..3ac07a0 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -23,11 +23,9 @@ jobs: run: | # Tag aus GitHub Actions Kontext extrahieren TAG="${GITHUB_REF#refs/tags/}" - echo "DEBUG | Tag erkannt: $TAG" # Repo-URL dynamisch aus vars und github.repository bauen REPO_URL="https://${RELEASE_TOKEN}:x-oauth-basic@${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}.git" - echo "DEBUG | Klone von: $REPO_URL" # Repository klonen git clone "$REPO_URL" repo @@ -52,24 +50,6 @@ jobs: echo "version=${VERSION}" >> $GITHUB_OUTPUT echo "channel=${CHANNEL}" >> $GITHUB_OUTPUT - echo "DEBUG | Version: $VERSION" - echo "DEBUG | Kanal: $CHANNEL" - - # - name: metadata.txt erzeugen - # run: | - # cd repo - - # VERSION="${{ steps.releaseinfo.outputs.version }}" - - # # Vorlage kopieren - # cp .plugin/metadata.template metadata.txt - - # # Platzhalter ersetzen - # sed -i "s/@VERSION@/${VERSION}/g" metadata.txt - - # echo "DEBUG | metadata.txt erzeugt:" - # cat metadata.txt - - name: plugin.info einlesen id: info run: | @@ -78,8 +58,30 @@ jobs: echo "$key=$value" >> $GITHUB_OUTPUT done < plugin.info - echo "DEBUG | plugin.info geladen:" - cat plugin.info + - name: Changelog einlesen + id: changelog + run: | + cd repo + + # Aktueller Block = alles vor dem ersten --- + CURRENT=$(sed '/^---/Q' changelog.txt) + + # Vollständige Historie für Gitea Release Body + # Aktuelle Version aus Tag voranstellen + VERSION="${{ steps.releaseinfo.outputs.version }}" + FULL=$(printf "## %s\n%s\n\n%s" \ + "$VERSION" \ + "$CURRENT" \ + "$(sed '1,/^---/d' changelog.txt)") + + # Für GITHUB_OUTPUT: Newlines escapen + echo "current<> $GITHUB_OUTPUT + echo "$CURRENT" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + echo "full<> $GITHUB_OUTPUT + echo "$FULL" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT - name: metadata.txt erzeugen run: | @@ -106,60 +108,17 @@ jobs: printf "%s\n" "$CONTENT" > "$OUT" - echo "DEBUG | metadata.txt erzeugt:" - cat metadata.txt - - # - name: ZIP-Datei erstellen - # id: zip - # run: | - # cd repo - - # # Plugin-Ordnername aus .plugin/zip_folder lesen - # ZIP_FOLDER=$(cat .plugin/zip_folder) - # echo "DEBUG | Plugin-Ordnername: $ZIP_FOLDER" - - # VERSION="${{ steps.releaseinfo.outputs.version }}" - # REPO_NAME="${GITHUB_REPOSITORY##*/}" - # ZIP_NAME="${REPO_NAME}-${VERSION}.zip" - - # echo "DEBUG | ZIP wird erzeugt: $ZIP_NAME" - - # # Temporären Build-Ordner anlegen - # mkdir -p dist/${ZIP_FOLDER} - - # # Plugin-Dateien kopieren (alles außer CI-/Meta-Verzeichnisse) - # rsync -a \ - # --exclude='.git' \ - # --exclude='.gitea' \ - # --exclude='.plugin' \ - # --exclude='dist' \ - # ./ dist/${ZIP_FOLDER}/ - - # # ZIP erzeugen - # cd dist - # zip -r "${ZIP_NAME}" "${ZIP_FOLDER}/" \ - # -x "*.pyc" -x "*/__pycache__/*" - # cd .. - - # # ZIP-Name für spätere Steps bereitstellen - # echo "zip_name=${ZIP_NAME}" >> $GITHUB_OUTPUT - - # echo "DEBUG | ZIP-Datei erzeugt: dist/${ZIP_NAME}" - - name: ZIP-Datei erstellen id: zip run: | cd repo ZIP_FOLDER="${{ steps.info.outputs.zip_folder }}" - echo "DEBUG | Plugin-Ordnername: $ZIP_FOLDER" VERSION="${{ steps.releaseinfo.outputs.version }}" REPO_NAME="${GITHUB_REPOSITORY##*/}" ZIP_NAME="${REPO_NAME}-${VERSION}.zip" - echo "DEBUG | ZIP wird erzeugt: $ZIP_NAME" - mkdir -p dist/${ZIP_FOLDER} rsync -a \ @@ -183,24 +142,14 @@ jobs: VERSION="${{ steps.releaseinfo.outputs.version }}" CHANNEL="${{ steps.releaseinfo.outputs.channel }}" - echo "Erstelle Release für Tag: $TAG" - echo "Version: $VERSION" - echo "Kanal: $CHANNEL" - API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases" - # JSON‑Body erzeugen JSON=$(jq -n \ - --arg tag "$TAG" \ - --arg name "Version $VERSION" \ - --arg body "Automatisch erzeugtes Release für Kanal: $CHANNEL" \ + --arg tag "$TAG" \ + --arg name "Version $VERSION" \ + --arg body "${{ steps.changelog.outputs.full }}" \ '{tag_name: $tag, name: $name, body: $body, draft: false, prerelease: false}') - echo "Sende API‑Request an: $API_URL" - echo "JSON‑Payload:" - echo "$JSON" - - # Release erstellen API_RESPONSE=$(curl -s -X POST "$API_URL" \ -H "accept: application/json" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ @@ -209,24 +158,19 @@ jobs: RELEASE_ID=$(echo "$API_RESPONSE" | jq -r '.id') - if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then - echo "Fehler beim Erstellen des Releases!" - echo "API‑Antwort:" - echo "$API_RESPONSE" - exit 1 - fi + if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then + echo "Fehler beim Erstellen des Releases!" + echo "$API_RESPONSE" + exit 1 + fi - echo "Release erfolgreich erstellt. ID: $RELEASE_ID" - echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT + echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT - name: ZIP-Datei hochladen run: | RELEASE_ID="${{ steps.create_release.outputs.release_id }}" ZIP_NAME="${{ steps.zip.outputs.zip_name }}" - echo "Lade ZIP-Datei hoch: $ZIP_NAME" - echo "Release-ID: $RELEASE_ID" - API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=${ZIP_NAME}" curl -s -X POST "$API_URL" \ @@ -235,9 +179,6 @@ jobs: --data-binary "@repo/dist/${ZIP_NAME}" \ -o upload_response.json - echo "Upload-Antwort:" - cat upload_response.json - # Optional: Fehlerprüfung if jq -e '.id' upload_response.json >/dev/null 2>&1; then echo "ZIP erfolgreich hochgeladen." @@ -246,45 +187,6 @@ jobs: exit 1 fi - # - name: Payload erzeugen - # run: | - # cd repo - - # PLUGIN_NAME=$(grep '^name=' metadata.txt | cut -d '=' -f2) - # DESCRIPTION=$(grep '^description=' metadata.txt | cut -d '=' -f2) - # AUTHOR=$(grep '^author=' metadata.txt | cut -d '=' -f2) - # EMAIL=$(grep '^email=' metadata.txt | cut -d '=' -f2) - - # VERSION="${{ steps.releaseinfo.outputs.version }}" - # CHANNEL="${{ steps.releaseinfo.outputs.channel }}" - # ZIP_NAME="${{ steps.zip.outputs.zip_name }}" - # CHANGELOG="${{ steps.changelog.outputs.log }}" - - # DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}" - - # jq -n \ - # --arg plugin "$PLUGIN_NAME" \ - # --arg version "$VERSION" \ - # --arg channel "$CHANNEL" \ - # --arg description "$DESCRIPTION" \ - # --arg author "$AUTHOR" \ - # --arg email "$EMAIL" \ - # --arg url "$DOWNLOAD_URL" \ - # --arg changelog "$CHANGELOG" \ - # '{ - # plugin: $plugin, - # version: $version, - # channel: $channel, - # description: $description, - # author: $author, - # email: $email, - # url: $url, - # changelog: $changelog - # }' > payload.json - - # echo "Payload:" - # cat payload.json - - name: Payload erzeugen run: | cd repo @@ -296,67 +198,43 @@ jobs: DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}" jq -n \ - --arg name "${{ steps.info.outputs.name }}" \ - --arg version "$VERSION" \ - --arg channel "$CHANNEL" \ - --arg description "${{ steps.info.outputs.description }}" \ - --arg author "${{ steps.info.outputs.author }}" \ - --arg email "${{ steps.info.outputs.email }}" \ - --arg qgis_min "${{ steps.info.outputs.qgisMinimumVersion }}" \ - --arg qgis_max "${{ steps.info.outputs.qgisMaximumVersion }}" \ - --arg homepage "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ - --arg tracker "$${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ - --arg repository "$${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ - --arg experimental "${{ steps.info.outputs.experimental }}" \ - --arg deprecated "${{ steps.info.outputs.deprecated }}" \ - --arg qt6 "${{ steps.info.outputs.supportsQt6 }}" \ - --arg id "${{ steps.info.outputs.zip_folder }}" \ - --arg url "$DOWNLOAD_URL" \ - --arg changelog "Automatischer Release" \ + --arg name "${{ steps.info.outputs.name }}" \ + --arg version "$VERSION" \ + --arg channel "$CHANNEL" \ + --arg description "${{ steps.info.outputs.description }}" \ + --arg author "${{ steps.info.outputs.author }}" \ + --arg email "${{ steps.info.outputs.email }}" \ + --arg qgis_min "${{ steps.info.outputs.qgisMinimumVersion }}" \ + --arg qgis_max "${{ steps.info.outputs.qgisMaximumVersion }}" \ + --arg homepage "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ + --arg tracker "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ + --arg repository "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ + --arg experimental "${{ steps.info.outputs.experimental }}" \ + --arg deprecated "${{ steps.info.outputs.deprecated }}" \ + --arg qt6 "${{ steps.info.outputs.supportsQt6 }}" \ + --arg id "${{ steps.info.outputs.zip_folder }}" \ + --arg url "$DOWNLOAD_URL" \ + --arg changelog "${{ steps.changelog.outputs.current }}" \ '{ - name: $name, - version: $version, - channel: $channel, - description: $description, - author: $author, - email: $email, - qgis_min: $qgis_min, - qgis_max: $qgis_max, - homepage: $homepage, - tracker: $tracker, - repository: $repository, - experimental: $experimental, - deprecated: $deprecated, - qt6: $qt6, - id: $id, - url: $url, - changelog: $changelog + name: $name, + version: $version, + channel: $channel, + description: $description, + author: $author, + email: $email, + qgis_min: $qgis_min, + qgis_max: $qgis_max, + homepage: $homepage, + tracker: $tracker, + repository: $repository, + experimental: $experimental, + deprecated: $deprecated, + qt6: $qt6, + id: $id, + url: $url, + changelog: $changelog }' > payload.json - echo "DEBUG | Payload erzeugt:" - cat payload.json - - - # - name: Repository aktualisieren - # run: | - # OWNER="AG_QGIS" - # WORKFLOW="update.yml" - - # # payload.json in Base64 umwandeln - # PAYLOAD_B64=$(base64 -w0 repo/payload.json) - - # # JSON für Gitea bauen - # JSON="{\"ref\":\"feature/release\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" - - # echo "Sende JSON:" - # echo "$JSON" - - # curl -X POST \ - # -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - # -H "Content-Type: application/json" \ - # -d "$JSON" \ - # "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" - - name: Repository aktualisieren run: | OWNER="AG_QGIS" diff --git a/.plugin/changelog.txt b/changelog.txt similarity index 92% rename from .plugin/changelog.txt rename to changelog.txt index efe02ee..bc67dd4 100644 --- a/.plugin/changelog.txt +++ b/changelog.txt @@ -1,4 +1,3 @@ -0.2.0 - Feature XY hinzugefügt - Bug Z behoben 0.1.0 diff --git a/plugin.info b/plugin.info index ae13d8a..c69ce7f 100644 --- a/plugin.info +++ b/plugin.info @@ -5,7 +5,7 @@ email=daniel.helbig@kreis-meissen.de, michael.otto@landkreis-mittelsachsen.de qgisMinimumVersion=3.0 qgisMaximumVersion=3.99 deprecated=False -experimental=True +experimental=True supportsQt6=Yes zip_folder=plugin_folder From 5f756be0771815478a03af1e0e2491da02e5ae82 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 13:50:17 +0100 Subject: [PATCH 079/196] Fehler in release.yml beseitigt --- .gitea/workflows/release.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 3ac07a0..b5e8fb1 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -60,28 +60,28 @@ jobs: - name: Changelog einlesen id: changelog - run: | - cd repo + run: | + cd repo - # Aktueller Block = alles vor dem ersten --- - CURRENT=$(sed '/^---/Q' changelog.txt) + # Aktueller Block = alles vor dem ersten --- + CURRENT=$(sed '/^---/Q' changelog.txt) - # Vollständige Historie für Gitea Release Body - # Aktuelle Version aus Tag voranstellen - VERSION="${{ steps.releaseinfo.outputs.version }}" - FULL=$(printf "## %s\n%s\n\n%s" \ - "$VERSION" \ - "$CURRENT" \ - "$(sed '1,/^---/d' changelog.txt)") + # Vollständige Historie für Gitea Release Body + # Aktuelle Version aus Tag voranstellen + VERSION="${{ steps.releaseinfo.outputs.version }}" + FULL=$(printf "## %s\n%s\n\n%s" \ + "$VERSION" \ + "$CURRENT" \ + "$(sed '1,/^---/d' changelog.txt)") - # Für GITHUB_OUTPUT: Newlines escapen - echo "current<> $GITHUB_OUTPUT - echo "$CURRENT" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT + # Für GITHUB_OUTPUT: Newlines escapen + echo "current<> $GITHUB_OUTPUT + echo "$CURRENT" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT - echo "full<> $GITHUB_OUTPUT - echo "$FULL" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT + echo "full<> $GITHUB_OUTPUT + echo "$FULL" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT - name: metadata.txt erzeugen run: | From 5ef21270b256f1fe609ffdd508a931aad0988306 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Tue, 3 Mar 2026 13:54:01 +0100 Subject: [PATCH 080/196] =?UTF-8?q?.gitea/workflows/release.yml=20gel?= =?UTF-8?q?=C3=B6scht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 .gitea/workflows/release.yml diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml deleted file mode 100644 index 99707a6..0000000 --- a/.gitea/workflows/release.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Build custom release zip - -on: - push: - tags: - - '*' # läuft bei jedem neuen Tag - -jobs: - build-release: - runs-on: docker - steps: - # 1. Repository auschecken - - name: Checkout - uses: actions/checkout@v3 - - # 2. ZIP-Datei mit ausgewählten Dateien/Ordnern erstellen - - name: Create custom zip - run: | - apk add zip - zip -r my-release-${GITEA_REF_NAME}.zip src/ docs/ README.md \ No newline at end of file From 8f0e6a9978459f4181ed2a9341cb9427669ebf63 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 13:57:02 +0100 Subject: [PATCH 081/196] Release v60 --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index b5e8fb1..f63f9d8 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -135,7 +135,7 @@ jobs: echo "zip_name=${ZIP_NAME}" >> $GITHUB_OUTPUT - - name: Gitea‑Release erstellen + - name: Gitea-Release erstellen id: create_release run: | TAG="${{ github.ref_name }}" From 00785eeabdea29ef2c7eec930b899fadaf496a62 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 13:58:12 +0100 Subject: [PATCH 082/196] Release v61 --- .gitea/workflows/release.yml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index f63f9d8..82e18a1 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -64,17 +64,19 @@ jobs: cd repo # Aktueller Block = alles vor dem ersten --- - CURRENT=$(sed '/^---/Q' changelog.txt) + CURRENT=$(awk '/^---/{exit} {print}' changelog.txt) - # Vollständige Historie für Gitea Release Body - # Aktuelle Version aus Tag voranstellen + # Vollständige Historie = alles nach dem ersten --- + HISTORY=$(awk 'found{print} /^---/{found=1}' changelog.txt) + + # Gitea Release Body zusammenbauen VERSION="${{ steps.releaseinfo.outputs.version }}" - FULL=$(printf "## %s\n%s\n\n%s" \ - "$VERSION" \ - "$CURRENT" \ - "$(sed '1,/^---/d' changelog.txt)") + FULL=$(printf "## %s\n%s\n\n%s" "$VERSION" "$CURRENT" "$HISTORY") - # Für GITHUB_OUTPUT: Newlines escapen + echo "DEBUG | Aktueller Changelog:" + echo "$CURRENT" + + # Für GITHUB_OUTPUT: Multiline via EOF-Marker echo "current<> $GITHUB_OUTPUT echo "$CURRENT" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT From 78ffc6d6d23949c3e9090b41043f93d4b0fe9ce1 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 14:02:32 +0100 Subject: [PATCH 083/196] Diverses --- changelog.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/changelog.txt b/changelog.txt index bc67dd4..8ed9a99 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,6 @@ + - Ganz viele neue Sachen +--- +61 - Feature XY hinzugefügt - Bug Z behoben 0.1.0 From a58f6255fc48919430c9fb30c7cb2af5e2cf3fc0 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 14:09:39 +0100 Subject: [PATCH 084/196] =?UTF-8?q?Anpassungen=20f=C3=BCr=20Releasemeldung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 2 +- templates/metadata.template | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 82e18a1..628d971 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -149,7 +149,7 @@ jobs: JSON=$(jq -n \ --arg tag "$TAG" \ --arg name "Version $VERSION" \ - --arg body "${{ steps.changelog.outputs.full }}" \ + --arg body "${{ steps.changelog.outputs.current }}" \ '{tag_name: $tag, name: $name, body: $body, draft: false, prerelease: false}') API_RESPONSE=$(curl -s -X POST "$API_URL" \ diff --git a/templates/metadata.template b/templates/metadata.template index 9b67d67..03702bf 100644 --- a/templates/metadata.template +++ b/templates/metadata.template @@ -11,4 +11,4 @@ tracker=https://{{TRACKER}}/issues repository=https://{{REPOSITORY}} experimental={{EXPERIMENTAL}} deprecated={{DEPRECATED}} -supportsQt6={{QT6}} \ No newline at end of file +supportsQt6={{QT6}} From 98fb235fb93dfe09ba37432616f4ccd2e3c4d2f5 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 14:11:54 +0100 Subject: [PATCH 085/196] Release v65 --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 628d971..de5e37c 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -150,7 +150,7 @@ jobs: --arg tag "$TAG" \ --arg name "Version $VERSION" \ --arg body "${{ steps.changelog.outputs.current }}" \ - '{tag_name: $tag, name: $name, body: $body, draft: false, prerelease: false}') + '{tag_name: $tag, name: $name, body: $body, draft: false, prerelease: true}') API_RESPONSE=$(curl -s -X POST "$API_URL" \ -H "accept: application/json" \ From 8ee99fa5da644fcb8b738fb128f371619120c4f2 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 14:12:40 +0100 Subject: [PATCH 086/196] Release v66 --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index de5e37c..a9ad773 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -150,7 +150,7 @@ jobs: --arg tag "$TAG" \ --arg name "Version $VERSION" \ --arg body "${{ steps.changelog.outputs.current }}" \ - '{tag_name: $tag, name: $name, body: $body, draft: false, prerelease: true}') + '{tag_name: $tag, name: $name, body: $body, draft: true, prerelease: true}') API_RESPONSE=$(curl -s -X POST "$API_URL" \ -H "accept: application/json" \ From 3ee93bdc0d0890d1a9846a47f35ec35dcad7320e Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 14:22:12 +0100 Subject: [PATCH 087/196] Kennzeichnung stable/unstable/testing --- .gitea/workflows/release.yml | 42 +++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index a9ad773..5add33b 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -40,15 +40,29 @@ jobs: run: | TAG="${{ github.ref_name }}" VERSION="${TAG#v}" - + case "$TAG" in - *-unstable*) CHANNEL="unstable" ;; - *-testing*) CHANNEL="testing" ;; - *) CHANNEL="stable" ;; + *-unstable*) + CHANNEL="unstable" + DRAFT="false" + PRERELEASE="true" + ;; + *-testing*) + CHANNEL="testing" + DRAFT="true" + PRERELEASE="false" + ;; + *) + CHANNEL="stable" + DRAFT="false" + PRERELEASE="false" + ;; esac - echo "version=${VERSION}" >> $GITHUB_OUTPUT - echo "channel=${CHANNEL}" >> $GITHUB_OUTPUT + echo "version=$VERSION" >> $GITHUB_OUTPUT + echo "channel=$CHANNEL" >> $GITHUB_OUTPUT + echo "draft=$DRAFT" >> $GITHUB_OUTPUT + echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT - name: plugin.info einlesen id: info @@ -147,10 +161,18 @@ jobs: API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases" JSON=$(jq -n \ - --arg tag "$TAG" \ - --arg name "Version $VERSION" \ - --arg body "${{ steps.changelog.outputs.current }}" \ - '{tag_name: $tag, name: $name, body: $body, draft: true, prerelease: true}') + --arg tag "$TAG" \ + --arg name "Version $VERSION" \ + --arg body "Automatisch erzeugtes Release für Kanal: $CHANNEL" \ + --argjson draft "${{ steps.releaseinfo.outputs.draft }}" \ + --argjson prerelease "${{ steps.releaseinfo.outputs.prerelease }}" \ + '{tag_name: $tag, name: $name, body: $body, draft: $draft, prerelease: $prerelease}') + + # JSON=$(jq -n \ + # --arg tag "$TAG" \ + # --arg name "Version $VERSION" \ + # --arg body "${{ steps.changelog.outputs.current }}" \ + # '{tag_name: $tag, name: $name, body: $body, draft: false, prerelease: false}') API_RESPONSE=$(curl -s -X POST "$API_URL" \ -H "accept: application/json" \ From aecf203932880b12ee24a450b83af1752d827d7d Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 14:47:45 +0100 Subject: [PATCH 088/196] Letzte Fehler behoben --- .gitea/workflows/release.yml | 2 +- plugin.info | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 5add33b..92009e4 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -163,7 +163,7 @@ jobs: JSON=$(jq -n \ --arg tag "$TAG" \ --arg name "Version $VERSION" \ - --arg body "Automatisch erzeugtes Release für Kanal: $CHANNEL" \ + --arg body "${{ steps.changelog.outputs.current }}" \ --argjson draft "${{ steps.releaseinfo.outputs.draft }}" \ --argjson prerelease "${{ steps.releaseinfo.outputs.prerelease }}" \ '{tag_name: $tag, name: $name, body: $body, draft: $draft, prerelease: $prerelease}') diff --git a/plugin.info b/plugin.info index c69ce7f..0709dc9 100644 --- a/plugin.info +++ b/plugin.info @@ -1,7 +1,7 @@ name=LNO Sachsen | Plugin Test Action description=Test plugin for release pipeline -author=Daniel Helbig, Michael Otto -email=daniel.helbig@kreis-meissen.de, michael.otto@landkreis-mittelsachsen.de +author=Daniel Helbig +email=daniel.helbig@kreis-meissen.de qgisMinimumVersion=3.0 qgisMaximumVersion=3.99 deprecated=False From e7f1e7e47cd5a0c6d6dbc7172e972bbf3ccee381 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 11:25:03 +0100 Subject: [PATCH 089/196] templates nach metadata.template verschoben --- templates/metadata.template | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 templates/metadata.template diff --git a/templates/metadata.template b/templates/metadata.template deleted file mode 100644 index 03702bf..0000000 --- a/templates/metadata.template +++ /dev/null @@ -1,14 +0,0 @@ -[general] -name={{NAME}} -qgisMinimumVersion={{QGIS_MIN}} -qgisMaximumVersion={{QGIS_MAX}} -description={{DESCRIPTION}} -version={{VERSION}} -author={{AUTHOR}} -email={{EMAIL}} -homepage=https://{{HOMEPAGE}} -tracker=https://{{TRACKER}}/issues -repository=https://{{REPOSITORY}} -experimental={{EXPERIMENTAL}} -deprecated={{DEPRECATED}} -supportsQt6={{QT6}} From eeb4dc68b22b743232e34d077bf1df2753e8f3f7 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 11:49:37 +0100 Subject: [PATCH 090/196] Release v1 --- .gitea/workflows/release.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 92009e4..260c7b2 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -103,7 +103,14 @@ jobs: run: | cd repo + # ------------------------ GEÄNDERT ------------------------ + # Temporär die Vorlage aus dem hidden/templates Branch holen + git fetch origin hidden/templates + git checkout origin/hidden/templates -- templates/metadata.template TEMPLATE="templates/metadata.template" + # ----------------------------------------------------------- + + # TEMPLATE="templates/metadata.template" OUT="metadata.txt" CONTENT=$(cat "$TEMPLATE") From 1a91574fe3a39064796ef57152c6694804f7c28c Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 11:54:38 +0100 Subject: [PATCH 091/196] Release v102-testing --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 260c7b2..da6a402 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -107,7 +107,7 @@ jobs: # Temporär die Vorlage aus dem hidden/templates Branch holen git fetch origin hidden/templates git checkout origin/hidden/templates -- templates/metadata.template - TEMPLATE="templates/metadata.template" + TEMPLATE="metadata.template" # ----------------------------------------------------------- # TEMPLATE="templates/metadata.template" From ac1d33b125ce6c82c6940165fcc6656ce97026bd Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 11:56:40 +0100 Subject: [PATCH 092/196] Release v103-testing --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index da6a402..845fe1b 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -106,7 +106,7 @@ jobs: # ------------------------ GEÄNDERT ------------------------ # Temporär die Vorlage aus dem hidden/templates Branch holen git fetch origin hidden/templates - git checkout origin/hidden/templates -- templates/metadata.template + git checkout origin/hidden/templates -- metadata.template TEMPLATE="metadata.template" # ----------------------------------------------------------- From bbbdcbcdf7ba7e1ac0668caf60874222cb06db9d Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 12:00:15 +0100 Subject: [PATCH 093/196] Release v104-testing --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 845fe1b..5fd9308 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -273,7 +273,7 @@ jobs: PAYLOAD_B64=$(base64 -w0 repo/payload.json) - JSON="{\"ref\":\"feature/release\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" + JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" echo "DEBUG | Sende JSON:" echo "$JSON" From afbb7e3e6518cf86fcf1d2cfdb80fa785f4c5eb8 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 14:28:08 +0100 Subject: [PATCH 094/196] Release v113-testing --- .gitea/workflows/release.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 5fd9308..d130c18 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -137,10 +137,12 @@ jobs: cd repo ZIP_FOLDER="${{ steps.info.outputs.zip_folder }}" + ZIP_FILE="${ZIP_FOLDER}.zip" VERSION="${{ steps.releaseinfo.outputs.version }}" REPO_NAME="${GITHUB_REPOSITORY##*/}" - ZIP_NAME="${REPO_NAME}-${VERSION}.zip" + #ZIP_NAME="${REPO_NAME}-${VERSION}.zip" + mkdir -p dist/${ZIP_FOLDER} @@ -152,11 +154,11 @@ jobs: ./ dist/${ZIP_FOLDER}/ cd dist - zip -r "${ZIP_NAME}" "${ZIP_FOLDER}/" \ + zip -r "${ZIP_FILE}" "${ZIP_FOLDER}/" \ -x "*.pyc" -x "*/__pycache__/*" cd .. - echo "zip_name=${ZIP_NAME}" >> $GITHUB_OUTPUT + echo "zip_file=${ZIP_FILE}" >> $GITHUB_OUTPUT - name: Gitea-Release erstellen id: create_release @@ -200,14 +202,14 @@ jobs: - name: ZIP-Datei hochladen run: | RELEASE_ID="${{ steps.create_release.outputs.release_id }}" - ZIP_NAME="${{ steps.zip.outputs.zip_name }}" + ZIP_FILE="${{ steps.zip.outputs.zip_file }}" API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=${ZIP_NAME}" curl -s -X POST "$API_URL" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/zip" \ - --data-binary "@repo/dist/${ZIP_NAME}" \ + --data-binary "@repo/dist/${ZIP_FILE}" \ -o upload_response.json # Optional: Fehlerprüfung @@ -224,9 +226,9 @@ jobs: VERSION="${{ steps.releaseinfo.outputs.version }}" CHANNEL="${{ steps.releaseinfo.outputs.channel }}" - ZIP_NAME="${{ steps.zip.outputs.zip_name }}" + ZIP_FILE="${{ steps.zip.outputs.zip_file }}" - DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_NAME}" + DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_FILE}" jq -n \ --arg name "${{ steps.info.outputs.name }}" \ From 0912ba17ca32ffcdf0e289344985688c12a42298 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 14:29:13 +0100 Subject: [PATCH 095/196] Release v114-testing --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index d130c18..54e65ff 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -204,7 +204,7 @@ jobs: RELEASE_ID="${{ steps.create_release.outputs.release_id }}" ZIP_FILE="${{ steps.zip.outputs.zip_file }}" - API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=${ZIP_NAME}" + API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=${ZIP_FILE}" curl -s -X POST "$API_URL" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ From 91da5ee3c05719c8696402783a1e76c70ceb43f7 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 14:44:29 +0100 Subject: [PATCH 096/196] Release v26.3.1-testing --- .gitea/workflows/release.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 54e65ff..75d1b3f 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -49,8 +49,8 @@ jobs: ;; *-testing*) CHANNEL="testing" - DRAFT="true" - PRERELEASE="false" + DRAFT="false" + PRERELEASE="true" ;; *) CHANNEL="stable" @@ -177,12 +177,6 @@ jobs: --argjson prerelease "${{ steps.releaseinfo.outputs.prerelease }}" \ '{tag_name: $tag, name: $name, body: $body, draft: $draft, prerelease: $prerelease}') - # JSON=$(jq -n \ - # --arg tag "$TAG" \ - # --arg name "Version $VERSION" \ - # --arg body "${{ steps.changelog.outputs.current }}" \ - # '{tag_name: $tag, name: $name, body: $body, draft: false, prerelease: false}') - API_RESPONSE=$(curl -s -X POST "$API_URL" \ -H "accept: application/json" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ From 7920fb83f3106fd2d91941db38f58d8880a249c4 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 14:51:38 +0100 Subject: [PATCH 097/196] Release v26.3.2-testing --- .gitea/workflows/release.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 75d1b3f..64fe83a 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -269,7 +269,12 @@ jobs: PAYLOAD_B64=$(base64 -w0 repo/payload.json) - JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" + NAME="${{ steps.info.outputs.name }}" + TAG="$VERSION" + + JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" + + #JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" echo "DEBUG | Sende JSON:" echo "$JSON" From f01e90700b038466d66e4f6c091c664268fb8b5b Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 15:04:36 +0100 Subject: [PATCH 098/196] Release v26.3.4-testing --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 64fe83a..5ce6103 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -270,7 +270,7 @@ jobs: PAYLOAD_B64=$(base64 -w0 repo/payload.json) NAME="${{ steps.info.outputs.name }}" - TAG="$VERSION" + TAG="${{ steps.releaseinfo.outputs.version }}" JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" From 945c54e78fc5f39f475f98504ece745d752eaa44 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 15:08:27 +0100 Subject: [PATCH 099/196] Release v26.3.5-testing --- .gitea/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 5ce6103..b87128c 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -1,4 +1,5 @@ name: Release Plugin +run-name: "Release ${{ github.ref_name }}" on: push: From 040af9fca3c635c73f162c47af77da38662185ff Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 15:09:27 +0100 Subject: [PATCH 100/196] Release v26.3.6-testing --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index b87128c..ebdae68 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -1,5 +1,5 @@ name: Release Plugin -run-name: "Release ${{ github.ref_name }}" +run-name: "Release | ${{ github.ref_name }}" on: push: From ed5021e2687c54e2d7b23d4963b0af251765479c Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 15:13:08 +0100 Subject: [PATCH 101/196] Release v26.3.7-testing --- .gitea/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index ebdae68..45f4234 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -270,7 +270,8 @@ jobs: PAYLOAD_B64=$(base64 -w0 repo/payload.json) - NAME="${{ steps.info.outputs.name }}" + FULL_NAME="${{ steps.info.outputs.name }}" + SHORT_NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') TAG="${{ steps.releaseinfo.outputs.version }}" JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" From 61e09aff21253b58d5da6562703757313583af37 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 15:14:38 +0100 Subject: [PATCH 102/196] Release v26.3.8-testing --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 45f4234..6e0a538 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -271,7 +271,7 @@ jobs: PAYLOAD_B64=$(base64 -w0 repo/payload.json) FULL_NAME="${{ steps.info.outputs.name }}" - SHORT_NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') + NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') TAG="${{ steps.releaseinfo.outputs.version }}" JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" From 8a8dfc8187fef883bd7da865fce376020a3ad77d Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Thu, 5 Mar 2026 15:21:39 +0100 Subject: [PATCH 103/196] Release v26.3.3 --- .gitea/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 6e0a538..bec21ca 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -131,6 +131,7 @@ jobs: CONTENT="${CONTENT//\{\{QT6\}\}/${{ steps.info.outputs.supportsQt6 }}}" printf "%s\n" "$CONTENT" > "$OUT" + rm $TEMPLATE - name: ZIP-Datei erstellen id: zip From 74d8eb468d5447e1c5d2fc4bb600fb290e79f5cf Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Fri, 13 Mar 2026 09:28:46 +0100 Subject: [PATCH 104/196] =?UTF-8?q?Aktualisierung=20der=20release.yml=20f?= =?UTF-8?q?=C3=BCr=20flexible=20Tag-Behandlung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 42 +++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index bec21ca..2c14853 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -4,7 +4,7 @@ run-name: "Release | ${{ github.ref_name }}" on: push: tags: - - 'v*' + - '*' jobs: release: @@ -40,26 +40,28 @@ jobs: id: releaseinfo run: | TAG="${{ github.ref_name }}" - VERSION="${TAG#v}" - case "$TAG" in - *-unstable*) - CHANNEL="unstable" - DRAFT="false" - PRERELEASE="true" - ;; - *-testing*) - CHANNEL="testing" - DRAFT="false" - PRERELEASE="true" - ;; - *) - CHANNEL="stable" - DRAFT="false" - PRERELEASE="false" - ;; - esac - + if [[ "$TAG" =~ ^t ]]; then + VERSION="${TAG#t}" + TAG="v${VERSION}-testing" + CHANNEL="testing" + DRAFT="false" + PRERELEASE="true" + elif [[ "$TAG" =~ ^u ]]; then + VERSION="${TAG#u}" + TAG="v${VERSION}-unstable" + CHANNEL="unstable" + DRAFT="false" + PRERELEASE="true" + else + # Falscheingaben als unstable behandeln + VERSION="${TAG#v}" + TAG="v${VERSION}-unstable" + CHANNEL="unstable" + DRAFT="false" + PRERELEASE="true" + fi + echo "version=$VERSION" >> $GITHUB_OUTPUT echo "channel=$CHANNEL" >> $GITHUB_OUTPUT echo "draft=$DRAFT" >> $GITHUB_OUTPUT From 23827bbd13a5d09059826c6952fe79d4fd825f8b Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Fri, 13 Mar 2026 09:31:23 +0100 Subject: [PATCH 105/196] =?UTF-8?q?Release-Name=20zu=20VERSION=20ohne=20'V?= =?UTF-8?q?ersion'=20Pr=C3=A4fix=20ge=C3=A4ndert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 2c14853..769cfd6 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -175,7 +175,7 @@ jobs: JSON=$(jq -n \ --arg tag "$TAG" \ - --arg name "Version $VERSION" \ + --arg name "$VERSION" \ --arg body "${{ steps.changelog.outputs.current }}" \ --argjson draft "${{ steps.releaseinfo.outputs.draft }}" \ --argjson prerelease "${{ steps.releaseinfo.outputs.prerelease }}" \ From 3d3dc098d5d81e7246d452efc16023e994e5ba6c Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Fri, 13 Mar 2026 09:34:39 +0100 Subject: [PATCH 106/196] =?UTF-8?q?Anpassung=20der=20Tag-Verarbeitung=20f?= =?UTF-8?q?=C3=BCr=20korrekte=20Release-Namen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 769cfd6..8e74cbc 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -41,22 +41,24 @@ jobs: run: | TAG="${{ github.ref_name }}" - if [[ "$TAG" =~ ^t ]]; then + if [[ "$TAG" =~ ^v ]]; then + VERSION="${TAG#v}" + CHANNEL="stable" + DRAFT="false" + PRERELEASE="false" + elif [[ "$TAG" =~ ^t ]]; then VERSION="${TAG#t}" - TAG="v${VERSION}-testing" CHANNEL="testing" DRAFT="false" PRERELEASE="true" elif [[ "$TAG" =~ ^u ]]; then VERSION="${TAG#u}" - TAG="v${VERSION}-unstable" CHANNEL="unstable" DRAFT="false" PRERELEASE="true" else - # Falscheingaben als unstable behandeln - VERSION="${TAG#v}" - TAG="v${VERSION}-unstable" + # Fallback für andere Prefixe, z.B. x26.3.1 -> 26.3.1-unstable + VERSION="${TAG#?}" CHANNEL="unstable" DRAFT="false" PRERELEASE="true" From 541c210bf66f55ecfe49f76ab8b638448c8e13c0 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Fri, 13 Mar 2026 09:36:12 +0100 Subject: [PATCH 107/196] =?UTF-8?q?Release-Name=20mit=20Channel-Zusatz=20f?= =?UTF-8?q?=C3=BCr=20pre-releases?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 8e74cbc..81a3c86 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -175,9 +175,15 @@ jobs: API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases" + if [[ "$CHANNEL" == "stable" ]]; then + RELEASE_NAME="$VERSION" + else + RELEASE_NAME="$VERSION-$CHANNEL" + fi + JSON=$(jq -n \ --arg tag "$TAG" \ - --arg name "$VERSION" \ + --arg name "$RELEASE_NAME" \ --arg body "${{ steps.changelog.outputs.current }}" \ --argjson draft "${{ steps.releaseinfo.outputs.draft }}" \ --argjson prerelease "${{ steps.releaseinfo.outputs.prerelease }}" \ From 46d23087e22b8d2d3ead9cbdf97487d5ae692e34 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Fri, 13 Mar 2026 09:59:19 +0100 Subject: [PATCH 108/196] =?UTF-8?q?Korrektur=20der=20Version-=20und=20Chan?= =?UTF-8?q?nel-Bestimmung=20f=C3=BCr=20Suffixe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 74 +++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 31 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 81a3c86..dae05f6 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -4,7 +4,7 @@ run-name: "Release | ${{ github.ref_name }}" on: push: tags: - - '*' + - 'v*' jobs: release: @@ -41,28 +41,46 @@ jobs: run: | TAG="${{ github.ref_name }}" - if [[ "$TAG" =~ ^v ]]; then - VERSION="${TAG#v}" - CHANNEL="stable" - DRAFT="false" - PRERELEASE="false" - elif [[ "$TAG" =~ ^t ]]; then - VERSION="${TAG#t}" - CHANNEL="testing" - DRAFT="false" - PRERELEASE="true" - elif [[ "$TAG" =~ ^u ]]; then - VERSION="${TAG#u}" - CHANNEL="unstable" - DRAFT="false" - PRERELEASE="true" - else - # Fallback für andere Prefixe, z.B. x26.3.1 -> 26.3.1-unstable - VERSION="${TAG#?}" - CHANNEL="unstable" - DRAFT="false" - PRERELEASE="true" - fi + case "$TAG" in + *-unstable*) + VERSION="${TAG%-unstable}" + VERSION="${VERSION#v}" + CHANNEL="unstable" + DRAFT="false" + PRERELEASE="true" + ;; + *-testing*) + VERSION="${TAG%-testing}" + VERSION="${VERSION#v}" + CHANNEL="testing" + DRAFT="false" + PRERELEASE="true" + ;; + v*) + VERSION="${TAG#v}" + CHANNEL="stable" + DRAFT="false" + PRERELEASE="false" + ;; + t*) + VERSION="${TAG#t}" + CHANNEL="testing" + DRAFT="false" + PRERELEASE="true" + ;; + u*) + VERSION="${TAG#u}" + CHANNEL="unstable" + DRAFT="false" + PRERELEASE="true" + ;; + *) + VERSION="${TAG#?}" + CHANNEL="unstable" + DRAFT="false" + PRERELEASE="true" + ;; + esac echo "version=$VERSION" >> $GITHUB_OUTPUT echo "channel=$CHANNEL" >> $GITHUB_OUTPUT @@ -175,15 +193,9 @@ jobs: API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases" - if [[ "$CHANNEL" == "stable" ]]; then - RELEASE_NAME="$VERSION" - else - RELEASE_NAME="$VERSION-$CHANNEL" - fi - JSON=$(jq -n \ --arg tag "$TAG" \ - --arg name "$RELEASE_NAME" \ + --arg name "Version $VERSION" \ --arg body "${{ steps.changelog.outputs.current }}" \ --argjson draft "${{ steps.releaseinfo.outputs.draft }}" \ --argjson prerelease "${{ steps.releaseinfo.outputs.prerelease }}" \ @@ -296,4 +308,4 @@ jobs: -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ -d "$JSON" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" \ No newline at end of file From 524c26e64e32fff08f4b8d1e8f98fe03cd6ca6bc Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Fri, 13 Mar 2026 10:04:04 +0100 Subject: [PATCH 109/196] =?UTF-8?q?Hinzuf=C3=BCgen=20der=20Batch-Datei=20z?= =?UTF-8?q?um=20Erstellen=20von=20Release-Tags?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- create_release_tag.bat | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 create_release_tag.bat diff --git a/create_release_tag.bat b/create_release_tag.bat new file mode 100644 index 0000000..f9c33a8 --- /dev/null +++ b/create_release_tag.bat @@ -0,0 +1,41 @@ +@echo off +setlocal enabledelayedexpansion + +echo Erstelle einen neuen Release-Tag +echo. + +set /p CHANNEL="Kanal eingeben (stable/testing/unstable): " +set /p VERSION="Version eingeben (z.B. 26.3.8): " + +if "%CHANNEL%"=="stable" ( + set TAG=v%VERSION% +) else if "%CHANNEL%"=="testing" ( + set TAG=v%VERSION%-testing +) else if "%CHANNEL%"=="unstable" ( + set TAG=v%VERSION%-unstable +) else ( + echo Ungueltiger Kanal. Verwende 'stable', 'testing' oder 'unstable'. + pause + exit /b 1 +) + +echo Erstelle Tag: %TAG% +git tag %TAG% + +if %errorlevel% neq 0 ( + echo Fehler beim Erstellen des Tags. + pause + exit /b 1 +) + +echo Pushe Tag: %TAG% +git push origin %TAG% + +if %errorlevel% neq 0 ( + echo Fehler beim Pushen des Tags. + pause + exit /b 1 +) + +echo Tag %TAG% erfolgreich erstellt und gepusht. +pause \ No newline at end of file From dd2f7287c5f7012a1f261d8577eb1ebd0d70a9a9 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Fri, 13 Mar 2026 10:39:55 +0100 Subject: [PATCH 110/196] Ermittlung Kanal angepasst --- .gitea/workflows/release.yml | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index dae05f6..55f3212 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -40,48 +40,31 @@ jobs: id: releaseinfo run: | TAG="${{ github.ref_name }}" - + VERSION="${TAG#v}" + case "$TAG" in *-unstable*) - VERSION="${TAG%-unstable}" - VERSION="${VERSION#v}" CHANNEL="unstable" DRAFT="false" PRERELEASE="true" ;; *-testing*) - VERSION="${TAG%-testing}" - VERSION="${VERSION#v}" CHANNEL="testing" DRAFT="false" PRERELEASE="true" ;; - v*) - VERSION="${TAG#v}" - CHANNEL="stable" - DRAFT="false" - PRERELEASE="false" - ;; - t*) - VERSION="${TAG#t}" - CHANNEL="testing" - DRAFT="false" - PRERELEASE="true" - ;; - u*) - VERSION="${TAG#u}" + *-*) CHANNEL="unstable" DRAFT="false" PRERELEASE="true" ;; *) - VERSION="${TAG#?}" - CHANNEL="unstable" + CHANNEL="stable" DRAFT="false" - PRERELEASE="true" + PRERELEASE="false" ;; esac - + echo "version=$VERSION" >> $GITHUB_OUTPUT echo "channel=$CHANNEL" >> $GITHUB_OUTPUT echo "draft=$DRAFT" >> $GITHUB_OUTPUT From 8f9e14b9a51eb96b186644b5d81ac135b73d8ee4 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Fri, 13 Mar 2026 14:03:48 +0100 Subject: [PATCH 111/196] =?UTF-8?q?Release-Workflow=20hinzugef=C3=BCgt=20u?= =?UTF-8?q?nd=20plugin.info=20zu=20plugin.cfg=20umbenannt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 21 +++++++++++---------- plugin.cfg | 11 +++++++++++ 2 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 plugin.cfg diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 55f3212..fc4e5ce 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -41,7 +41,7 @@ jobs: run: | TAG="${{ github.ref_name }}" VERSION="${TAG#v}" - + case "$TAG" in *-unstable*) CHANNEL="unstable" @@ -53,11 +53,6 @@ jobs: DRAFT="false" PRERELEASE="true" ;; - *-*) - CHANNEL="unstable" - DRAFT="false" - PRERELEASE="true" - ;; *) CHANNEL="stable" DRAFT="false" @@ -70,13 +65,16 @@ jobs: echo "draft=$DRAFT" >> $GITHUB_OUTPUT echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT - - name: plugin.info einlesen + - name: plugin.cfg einlesen id: info run: | cd repo - while IFS='=' read -r key value; do + while read -r line || [ -n "$line" ]; do + key="${line%%=*}" + value="${line#*=}" echo "$key=$value" >> $GITHUB_OUTPUT - done < plugin.info + echo "$key=$value" + done < plugin.cfg - name: Changelog einlesen id: changelog @@ -146,6 +144,9 @@ jobs: ZIP_FOLDER="${{ steps.info.outputs.zip_folder }}" ZIP_FILE="${ZIP_FOLDER}.zip" + echo "ZIP_FOLDER: $ZIP_FOLDER" + echo "ZIP_FILE: $ZIP_FILE" + VERSION="${{ steps.releaseinfo.outputs.version }}" REPO_NAME="${GITHUB_REPOSITORY##*/}" #ZIP_NAME="${REPO_NAME}-${VERSION}.zip" @@ -291,4 +292,4 @@ jobs: -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ -d "$JSON" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" \ No newline at end of file + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" diff --git a/plugin.cfg b/plugin.cfg new file mode 100644 index 0000000..0709dc9 --- /dev/null +++ b/plugin.cfg @@ -0,0 +1,11 @@ +name=LNO Sachsen | Plugin Test Action +description=Test plugin for release pipeline +author=Daniel Helbig +email=daniel.helbig@kreis-meissen.de +qgisMinimumVersion=3.0 +qgisMaximumVersion=3.99 +deprecated=False +experimental=True +supportsQt6=Yes + +zip_folder=plugin_folder From 1a2afb8830b34a5c3c8468a1eb32ab6239f293eb Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Fri, 13 Mar 2026 14:03:55 +0100 Subject: [PATCH 112/196] =?UTF-8?q?Release-Workflow=20hinzugef=C3=BCgt=20u?= =?UTF-8?q?nd=20plugin.info=20zu=20plugin.cfg=20umbenannt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.txt | 6 ------ plugin.info | 11 ----------- 2 files changed, 17 deletions(-) delete mode 100644 plugin.info diff --git a/changelog.txt b/changelog.txt index 8ed9a99..f25ea89 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1 @@ - - Ganz viele neue Sachen ---- -61 - - Feature XY hinzugefügt - - Bug Z behoben -0.1.0 - Initiales Release \ No newline at end of file diff --git a/plugin.info b/plugin.info deleted file mode 100644 index 0709dc9..0000000 --- a/plugin.info +++ /dev/null @@ -1,11 +0,0 @@ -name=LNO Sachsen | Plugin Test Action -description=Test plugin for release pipeline -author=Daniel Helbig -email=daniel.helbig@kreis-meissen.de -qgisMinimumVersion=3.0 -qgisMaximumVersion=3.99 -deprecated=False -experimental=True -supportsQt6=Yes - -zip_folder=plugin_folder From c9de2e6f4709f72e23b0508cff2faf8785b6106e Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 16 Mar 2026 14:14:40 +0100 Subject: [PATCH 113/196] =?UTF-8?q?Ver=C3=A4nderter=20Release=20Ablauf,=20?= =?UTF-8?q?jetzt=20wieder=20mit=20metadata.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 95 ++++++++++++++++++------------------ .gitignore | 3 +- metadata.txt | 14 ++++++ plugin.cfg | 10 ---- 4 files changed, 62 insertions(+), 60 deletions(-) create mode 100644 metadata.txt diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index fc4e5ce..928a9c9 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -40,8 +40,20 @@ jobs: id: releaseinfo run: | TAG="${{ github.ref_name }}" - VERSION="${TAG#v}" - + TAG_VERSION="${TAG#v}" + + # Version aus metadata.txt auslesen + VERSION=$(grep -m1 '^version=' repo/metadata.txt | cut -d'=' -f2-) + if [ -z "$VERSION" ]; then + echo "Fehler: Version in repo/metadata.txt nicht gefunden" >&2 + exit 1 + fi + + if [ "$VERSION" != "$TAG_VERSION" ]; then + echo "Fehler: Tag-Version ($TAG_VERSION) stimmt nicht mit metadata.txt-Version ($VERSION) überein" >&2 + exit 1 + fi + case "$TAG" in *-unstable*) CHANNEL="unstable" @@ -65,15 +77,34 @@ jobs: echo "draft=$DRAFT" >> $GITHUB_OUTPUT echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT + - name: metadata.txt einlesen + id: metadata + run: | + cd repo + + # Hilfsfunktion, um einen Schlüssel aus metadata.txt auszulesen + get() { + grep -m1 -E "^$1=" metadata.txt | cut -d'=' -f2- || true + } + + echo "name=$(get name)" >> $GITHUB_OUTPUT + echo "description=$(get description)" >> $GITHUB_OUTPUT + echo "author=$(get author)" >> $GITHUB_OUTPUT + echo "email=$(get email)" >> $GITHUB_OUTPUT + echo "qgisMinimumVersion=$(get qgisMinimumVersion)" >> $GITHUB_OUTPUT + echo "qgisMaximumVersion=$(get qgisMaximumVersion)" >> $GITHUB_OUTPUT + echo "experimental=$(get experimental)" >> $GITHUB_OUTPUT + echo "deprecated=$(get deprecated)" >> $GITHUB_OUTPUT + echo "supportsQt6=$(get supportsQt6)" >> $GITHUB_OUTPUT + - name: plugin.cfg einlesen - id: info + id: config run: | cd repo while read -r line || [ -n "$line" ]; do key="${line%%=*}" value="${line#*=}" echo "$key=$value" >> $GITHUB_OUTPUT - echo "$key=$value" done < plugin.cfg - name: Changelog einlesen @@ -103,45 +134,13 @@ jobs: echo "$FULL" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT - - name: metadata.txt erzeugen - run: | - cd repo - - # ------------------------ GEÄNDERT ------------------------ - # Temporär die Vorlage aus dem hidden/templates Branch holen - git fetch origin hidden/templates - git checkout origin/hidden/templates -- metadata.template - TEMPLATE="metadata.template" - # ----------------------------------------------------------- - - # TEMPLATE="templates/metadata.template" - OUT="metadata.txt" - - CONTENT=$(cat "$TEMPLATE") - - CONTENT="${CONTENT//\{\{NAME\}\}/${{ steps.info.outputs.name }}}" - CONTENT="${CONTENT//\{\{QGIS_MIN\}\}/${{ steps.info.outputs.qgisMinimumVersion }}}" - CONTENT="${CONTENT//\{\{QGIS_MAX\}\}/${{ steps.info.outputs.qgisMaximumVersion }}}" - CONTENT="${CONTENT//\{\{DESCRIPTION\}\}/${{ steps.info.outputs.description }}}" - CONTENT="${CONTENT//\{\{VERSION\}\}/${{ steps.releaseinfo.outputs.version }}}" - CONTENT="${CONTENT//\{\{AUTHOR\}\}/${{ steps.info.outputs.author }}}" - CONTENT="${CONTENT//\{\{EMAIL\}\}/${{ steps.info.outputs.email }}}" - CONTENT="${CONTENT//\{\{HOMEPAGE\}\}/${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}}" - CONTENT="${CONTENT//\{\{TRACKER\}\}/${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}}" - CONTENT="${CONTENT//\{\{REPOSITORY\}\}/${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}}" - CONTENT="${CONTENT//\{\{EXPERIMENTAL\}\}/${{ steps.info.outputs.experimental }}}" - CONTENT="${CONTENT//\{\{DEPRECATED\}\}/${{ steps.info.outputs.deprecated }}}" - CONTENT="${CONTENT//\{\{QT6\}\}/${{ steps.info.outputs.supportsQt6 }}}" - - printf "%s\n" "$CONTENT" > "$OUT" - rm $TEMPLATE - name: ZIP-Datei erstellen id: zip run: | cd repo - ZIP_FOLDER="${{ steps.info.outputs.zip_folder }}" + ZIP_FOLDER="${{ steps.config.outputs.zip_folder }}" ZIP_FILE="${ZIP_FOLDER}.zip" echo "ZIP_FOLDER: $ZIP_FOLDER" @@ -233,21 +232,21 @@ jobs: DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_FILE}" jq -n \ - --arg name "${{ steps.info.outputs.name }}" \ + --arg name "${{ steps.metadata.outputs.name }}" \ --arg version "$VERSION" \ --arg channel "$CHANNEL" \ - --arg description "${{ steps.info.outputs.description }}" \ - --arg author "${{ steps.info.outputs.author }}" \ - --arg email "${{ steps.info.outputs.email }}" \ - --arg qgis_min "${{ steps.info.outputs.qgisMinimumVersion }}" \ - --arg qgis_max "${{ steps.info.outputs.qgisMaximumVersion }}" \ + --arg description "${{ steps.metadata.outputs.description }}" \ + --arg author "${{ steps.metadata.outputs.author }}" \ + --arg email "${{ steps.metadata.outputs.email }}" \ + --arg qgis_min "${{ steps.metadata.outputs.qgisMinimumVersion }}" \ + --arg qgis_max "${{ steps.metadata.outputs.qgisMaximumVersion }}" \ --arg homepage "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ --arg tracker "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ --arg repository "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ - --arg experimental "${{ steps.info.outputs.experimental }}" \ - --arg deprecated "${{ steps.info.outputs.deprecated }}" \ - --arg qt6 "${{ steps.info.outputs.supportsQt6 }}" \ - --arg id "${{ steps.info.outputs.zip_folder }}" \ + --arg experimental "${{ steps.metadata.outputs.experimental }}" \ + --arg deprecated "${{ steps.metadata.outputs.deprecated }}" \ + --arg qt6 "${{ steps.metadata.outputs.supportsQt6 }}" \ + --arg id "${{ steps.config.outputs.zip_folder }}" \ --arg url "$DOWNLOAD_URL" \ --arg changelog "${{ steps.changelog.outputs.current }}" \ '{ @@ -277,7 +276,7 @@ jobs: PAYLOAD_B64=$(base64 -w0 repo/payload.json) - FULL_NAME="${{ steps.info.outputs.name }}" + FULL_NAME="${{ steps.metadata.outputs.name }}" NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') TAG="${{ steps.releaseinfo.outputs.version }}" diff --git a/.gitignore b/.gitignore index bab976c..711691d 100644 --- a/.gitignore +++ b/.gitignore @@ -174,5 +174,4 @@ cython_debug/ # PyPI configuration file .pypirc -metadata.txt -release.cmd \ No newline at end of file +release.cmd diff --git a/metadata.txt b/metadata.txt new file mode 100644 index 0000000..bd383c4 --- /dev/null +++ b/metadata.txt @@ -0,0 +1,14 @@ +[general] +name=LNO Sachsen | Plugin Test Action +qgisMinimumVersion=3.40 +qgisMaximumVersion=3.99 +description=Test plugin for release pipeline +version=0 +author=Daniel Helbig +email=daniel.helbig@kreis-meissen.de +homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action +tracker=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action/issues +repository=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action/src/branch/unstable/ +experimental=true +deprecated=false +supportsQt6=true \ No newline at end of file diff --git a/plugin.cfg b/plugin.cfg index 0709dc9..ca2e625 100644 --- a/plugin.cfg +++ b/plugin.cfg @@ -1,11 +1 @@ -name=LNO Sachsen | Plugin Test Action -description=Test plugin for release pipeline -author=Daniel Helbig -email=daniel.helbig@kreis-meissen.de -qgisMinimumVersion=3.0 -qgisMaximumVersion=3.99 -deprecated=False -experimental=True -supportsQt6=Yes - zip_folder=plugin_folder From 8289269881e1abb394ab8dbdf6ce542a6a1d8932 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 16 Mar 2026 14:18:20 +0100 Subject: [PATCH 114/196] =?UTF-8?q?Auslesen=20der=20Version=20ge=C3=A4nder?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 928a9c9..e2c0ce1 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -40,19 +40,7 @@ jobs: id: releaseinfo run: | TAG="${{ github.ref_name }}" - TAG_VERSION="${TAG#v}" - - # Version aus metadata.txt auslesen - VERSION=$(grep -m1 '^version=' repo/metadata.txt | cut -d'=' -f2-) - if [ -z "$VERSION" ]; then - echo "Fehler: Version in repo/metadata.txt nicht gefunden" >&2 - exit 1 - fi - - if [ "$VERSION" != "$TAG_VERSION" ]; then - echo "Fehler: Tag-Version ($TAG_VERSION) stimmt nicht mit metadata.txt-Version ($VERSION) überein" >&2 - exit 1 - fi + VERSION="${TAG#v}" case "$TAG" in *-unstable*) @@ -107,6 +95,12 @@ jobs: echo "$key=$value" >> $GITHUB_OUTPUT done < plugin.cfg + - name: metadata.txt mit Version aktualisieren + run: | + cd repo + VERSION="${{ steps.releaseinfo.outputs.version }}" + sed -i "s/^version=.*/version=$VERSION/" metadata.txt + - name: Changelog einlesen id: changelog run: | From ed46846d4e89f314944a1350e8f2abd718277d24 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 16 Mar 2026 14:23:20 +0100 Subject: [PATCH 115/196] =?UTF-8?q?metadata.txt=20im=20Repo=20=C3=A4ndern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index e2c0ce1..cdbc4bf 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -152,6 +152,7 @@ jobs: --exclude='.gitea' \ --exclude='.plugin' \ --exclude='dist' \ + --exclude='plugin.cfg' \ ./ dist/${ZIP_FOLDER}/ cd dist @@ -286,3 +287,35 @@ jobs: -H "Content-Type: application/json" \ -d "$JSON" \ "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + + - name: metadata.txt ins Repo committen + run: | + cd repo + + TAG="${{ github.ref_name }}" + VERSION="${{ steps.releaseinfo.outputs.version }}" + + # Branch aus Tag ableiten + case "$TAG" in + *-unstable*) + BRANCH="unstable" + ;; + *-testing*) + BRANCH="testing" + ;; + *) + BRANCH="main" + ;; + esac + + # Branch checkouten + git checkout "$BRANCH" + + # Falls es Änderungen gibt, commit und push + if git diff --quiet metadata.txt; then + echo "Keine Änderungen an metadata.txt" + else + git add metadata.txt + git commit -m "Update version to $VERSION" + git push origin "$BRANCH" + fi From a8deca303758dca0a661a8fedb81ced03a70175f Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 09:31:53 +0100 Subject: [PATCH 116/196] gitea actions ng --- .gitea/workflows/release.yml | 285 +-------------------------- .gitea/workflows/release_alt.yml | 321 +++++++++++++++++++++++++++++++ 2 files changed, 325 insertions(+), 281 deletions(-) create mode 100644 .gitea/workflows/release_alt.yml diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index cdbc4bf..266596b 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -12,30 +12,8 @@ jobs: defaults: run: shell: bash - + steps: - - name: Notwendige Abhängigkeiten installieren - shell: sh - run: | - apk add --no-cache git zip curl jq rsync bash - git config --global http.sslVerify false - - - name: Code holen - run: | - # Tag aus GitHub Actions Kontext extrahieren - TAG="${GITHUB_REF#refs/tags/}" - - # Repo-URL dynamisch aus vars und github.repository bauen - REPO_URL="https://${RELEASE_TOKEN}:x-oauth-basic@${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}.git" - - # Repository klonen - git clone "$REPO_URL" repo - cd repo - - git checkout "$TAG" - env: - RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} - - name: Version und Kanal bestimmen id: releaseinfo run: | @@ -45,277 +23,22 @@ jobs: case "$TAG" in *-unstable*) CHANNEL="unstable" - DRAFT="false" PRERELEASE="true" ;; *-testing*) CHANNEL="testing" - DRAFT="false" PRERELEASE="true" ;; *) CHANNEL="stable" - DRAFT="false" PRERELEASE="false" ;; esac echo "version=$VERSION" >> $GITHUB_OUTPUT echo "channel=$CHANNEL" >> $GITHUB_OUTPUT - echo "draft=$DRAFT" >> $GITHUB_OUTPUT echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT - - name: metadata.txt einlesen - id: metadata - run: | - cd repo - - # Hilfsfunktion, um einen Schlüssel aus metadata.txt auszulesen - get() { - grep -m1 -E "^$1=" metadata.txt | cut -d'=' -f2- || true - } - - echo "name=$(get name)" >> $GITHUB_OUTPUT - echo "description=$(get description)" >> $GITHUB_OUTPUT - echo "author=$(get author)" >> $GITHUB_OUTPUT - echo "email=$(get email)" >> $GITHUB_OUTPUT - echo "qgisMinimumVersion=$(get qgisMinimumVersion)" >> $GITHUB_OUTPUT - echo "qgisMaximumVersion=$(get qgisMaximumVersion)" >> $GITHUB_OUTPUT - echo "experimental=$(get experimental)" >> $GITHUB_OUTPUT - echo "deprecated=$(get deprecated)" >> $GITHUB_OUTPUT - echo "supportsQt6=$(get supportsQt6)" >> $GITHUB_OUTPUT - - - name: plugin.cfg einlesen - id: config - run: | - cd repo - while read -r line || [ -n "$line" ]; do - key="${line%%=*}" - value="${line#*=}" - echo "$key=$value" >> $GITHUB_OUTPUT - done < plugin.cfg - - - name: metadata.txt mit Version aktualisieren - run: | - cd repo - VERSION="${{ steps.releaseinfo.outputs.version }}" - sed -i "s/^version=.*/version=$VERSION/" metadata.txt - - - name: Changelog einlesen - id: changelog - run: | - cd repo - - # Aktueller Block = alles vor dem ersten --- - CURRENT=$(awk '/^---/{exit} {print}' changelog.txt) - - # Vollständige Historie = alles nach dem ersten --- - HISTORY=$(awk 'found{print} /^---/{found=1}' changelog.txt) - - # Gitea Release Body zusammenbauen - VERSION="${{ steps.releaseinfo.outputs.version }}" - FULL=$(printf "## %s\n%s\n\n%s" "$VERSION" "$CURRENT" "$HISTORY") - - echo "DEBUG | Aktueller Changelog:" - echo "$CURRENT" - - # Für GITHUB_OUTPUT: Multiline via EOF-Marker - echo "current<> $GITHUB_OUTPUT - echo "$CURRENT" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - echo "full<> $GITHUB_OUTPUT - echo "$FULL" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - - - name: ZIP-Datei erstellen - id: zip - run: | - cd repo - - ZIP_FOLDER="${{ steps.config.outputs.zip_folder }}" - ZIP_FILE="${ZIP_FOLDER}.zip" - - echo "ZIP_FOLDER: $ZIP_FOLDER" - echo "ZIP_FILE: $ZIP_FILE" - - VERSION="${{ steps.releaseinfo.outputs.version }}" - REPO_NAME="${GITHUB_REPOSITORY##*/}" - #ZIP_NAME="${REPO_NAME}-${VERSION}.zip" - - - mkdir -p dist/${ZIP_FOLDER} - - rsync -a \ - --exclude='.git' \ - --exclude='.gitea' \ - --exclude='.plugin' \ - --exclude='dist' \ - --exclude='plugin.cfg' \ - ./ dist/${ZIP_FOLDER}/ - - cd dist - zip -r "${ZIP_FILE}" "${ZIP_FOLDER}/" \ - -x "*.pyc" -x "*/__pycache__/*" - cd .. - - echo "zip_file=${ZIP_FILE}" >> $GITHUB_OUTPUT - - - name: Gitea-Release erstellen - id: create_release - run: | - TAG="${{ github.ref_name }}" - VERSION="${{ steps.releaseinfo.outputs.version }}" - CHANNEL="${{ steps.releaseinfo.outputs.channel }}" - - API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases" - - JSON=$(jq -n \ - --arg tag "$TAG" \ - --arg name "Version $VERSION" \ - --arg body "${{ steps.changelog.outputs.current }}" \ - --argjson draft "${{ steps.releaseinfo.outputs.draft }}" \ - --argjson prerelease "${{ steps.releaseinfo.outputs.prerelease }}" \ - '{tag_name: $tag, name: $name, body: $body, draft: $draft, prerelease: $prerelease}') - - API_RESPONSE=$(curl -s -X POST "$API_URL" \ - -H "accept: application/json" \ - -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - -H "Content-Type: application/json" \ - -d "$JSON") - - RELEASE_ID=$(echo "$API_RESPONSE" | jq -r '.id') - - if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then - echo "Fehler beim Erstellen des Releases!" - echo "$API_RESPONSE" - exit 1 - fi - - echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT - - - name: ZIP-Datei hochladen - run: | - RELEASE_ID="${{ steps.create_release.outputs.release_id }}" - ZIP_FILE="${{ steps.zip.outputs.zip_file }}" - - API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=${ZIP_FILE}" - - curl -s -X POST "$API_URL" \ - -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - -H "Content-Type: application/zip" \ - --data-binary "@repo/dist/${ZIP_FILE}" \ - -o upload_response.json - - # Optional: Fehlerprüfung - if jq -e '.id' upload_response.json >/dev/null 2>&1; then - echo "ZIP erfolgreich hochgeladen." - else - echo "Fehler beim Hochladen der ZIP!" - exit 1 - fi - - - name: Payload erzeugen - run: | - cd repo - - VERSION="${{ steps.releaseinfo.outputs.version }}" - CHANNEL="${{ steps.releaseinfo.outputs.channel }}" - ZIP_FILE="${{ steps.zip.outputs.zip_file }}" - - DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_FILE}" - - jq -n \ - --arg name "${{ steps.metadata.outputs.name }}" \ - --arg version "$VERSION" \ - --arg channel "$CHANNEL" \ - --arg description "${{ steps.metadata.outputs.description }}" \ - --arg author "${{ steps.metadata.outputs.author }}" \ - --arg email "${{ steps.metadata.outputs.email }}" \ - --arg qgis_min "${{ steps.metadata.outputs.qgisMinimumVersion }}" \ - --arg qgis_max "${{ steps.metadata.outputs.qgisMaximumVersion }}" \ - --arg homepage "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ - --arg tracker "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ - --arg repository "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ - --arg experimental "${{ steps.metadata.outputs.experimental }}" \ - --arg deprecated "${{ steps.metadata.outputs.deprecated }}" \ - --arg qt6 "${{ steps.metadata.outputs.supportsQt6 }}" \ - --arg id "${{ steps.config.outputs.zip_folder }}" \ - --arg url "$DOWNLOAD_URL" \ - --arg changelog "${{ steps.changelog.outputs.current }}" \ - '{ - name: $name, - version: $version, - channel: $channel, - description: $description, - author: $author, - email: $email, - qgis_min: $qgis_min, - qgis_max: $qgis_max, - homepage: $homepage, - tracker: $tracker, - repository: $repository, - experimental: $experimental, - deprecated: $deprecated, - qt6: $qt6, - id: $id, - url: $url, - changelog: $changelog - }' > payload.json - - - name: Repository aktualisieren - run: | - OWNER="AG_QGIS" - WORKFLOW="update.yml" - - PAYLOAD_B64=$(base64 -w0 repo/payload.json) - - FULL_NAME="${{ steps.metadata.outputs.name }}" - NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') - TAG="${{ steps.releaseinfo.outputs.version }}" - - JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" - - #JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" - - echo "DEBUG | Sende JSON:" - echo "$JSON" - - curl -X POST \ - -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ - -H "Content-Type: application/json" \ - -d "$JSON" \ - "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" - - - name: metadata.txt ins Repo committen - run: | - cd repo - - TAG="${{ github.ref_name }}" - VERSION="${{ steps.releaseinfo.outputs.version }}" - - # Branch aus Tag ableiten - case "$TAG" in - *-unstable*) - BRANCH="unstable" - ;; - *-testing*) - BRANCH="testing" - ;; - *) - BRANCH="main" - ;; - esac - - # Branch checkouten - git checkout "$BRANCH" - - # Falls es Änderungen gibt, commit und push - if git diff --quiet metadata.txt; then - echo "Keine Änderungen an metadata.txt" - else - git add metadata.txt - git commit -m "Update version to $VERSION" - git push origin "$BRANCH" - fi + echo "version=$VERSION" + echo "channel=$CHANNEL" + echo "prerelease=$PRERELEASE" \ No newline at end of file diff --git a/.gitea/workflows/release_alt.yml b/.gitea/workflows/release_alt.yml new file mode 100644 index 0000000..cdbc4bf --- /dev/null +++ b/.gitea/workflows/release_alt.yml @@ -0,0 +1,321 @@ +name: Release Plugin +run-name: "Release | ${{ github.ref_name }}" + +on: + push: + tags: + - 'v*' + +jobs: + release: + runs-on: alpine-latest + defaults: + run: + shell: bash + + steps: + - name: Notwendige Abhängigkeiten installieren + shell: sh + run: | + apk add --no-cache git zip curl jq rsync bash + git config --global http.sslVerify false + + - name: Code holen + run: | + # Tag aus GitHub Actions Kontext extrahieren + TAG="${GITHUB_REF#refs/tags/}" + + # Repo-URL dynamisch aus vars und github.repository bauen + REPO_URL="https://${RELEASE_TOKEN}:x-oauth-basic@${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}.git" + + # Repository klonen + git clone "$REPO_URL" repo + cd repo + + git checkout "$TAG" + env: + RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} + + - name: Version und Kanal bestimmen + id: releaseinfo + run: | + TAG="${{ github.ref_name }}" + VERSION="${TAG#v}" + + case "$TAG" in + *-unstable*) + CHANNEL="unstable" + DRAFT="false" + PRERELEASE="true" + ;; + *-testing*) + CHANNEL="testing" + DRAFT="false" + PRERELEASE="true" + ;; + *) + CHANNEL="stable" + DRAFT="false" + PRERELEASE="false" + ;; + esac + + echo "version=$VERSION" >> $GITHUB_OUTPUT + echo "channel=$CHANNEL" >> $GITHUB_OUTPUT + echo "draft=$DRAFT" >> $GITHUB_OUTPUT + echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT + + - name: metadata.txt einlesen + id: metadata + run: | + cd repo + + # Hilfsfunktion, um einen Schlüssel aus metadata.txt auszulesen + get() { + grep -m1 -E "^$1=" metadata.txt | cut -d'=' -f2- || true + } + + echo "name=$(get name)" >> $GITHUB_OUTPUT + echo "description=$(get description)" >> $GITHUB_OUTPUT + echo "author=$(get author)" >> $GITHUB_OUTPUT + echo "email=$(get email)" >> $GITHUB_OUTPUT + echo "qgisMinimumVersion=$(get qgisMinimumVersion)" >> $GITHUB_OUTPUT + echo "qgisMaximumVersion=$(get qgisMaximumVersion)" >> $GITHUB_OUTPUT + echo "experimental=$(get experimental)" >> $GITHUB_OUTPUT + echo "deprecated=$(get deprecated)" >> $GITHUB_OUTPUT + echo "supportsQt6=$(get supportsQt6)" >> $GITHUB_OUTPUT + + - name: plugin.cfg einlesen + id: config + run: | + cd repo + while read -r line || [ -n "$line" ]; do + key="${line%%=*}" + value="${line#*=}" + echo "$key=$value" >> $GITHUB_OUTPUT + done < plugin.cfg + + - name: metadata.txt mit Version aktualisieren + run: | + cd repo + VERSION="${{ steps.releaseinfo.outputs.version }}" + sed -i "s/^version=.*/version=$VERSION/" metadata.txt + + - name: Changelog einlesen + id: changelog + run: | + cd repo + + # Aktueller Block = alles vor dem ersten --- + CURRENT=$(awk '/^---/{exit} {print}' changelog.txt) + + # Vollständige Historie = alles nach dem ersten --- + HISTORY=$(awk 'found{print} /^---/{found=1}' changelog.txt) + + # Gitea Release Body zusammenbauen + VERSION="${{ steps.releaseinfo.outputs.version }}" + FULL=$(printf "## %s\n%s\n\n%s" "$VERSION" "$CURRENT" "$HISTORY") + + echo "DEBUG | Aktueller Changelog:" + echo "$CURRENT" + + # Für GITHUB_OUTPUT: Multiline via EOF-Marker + echo "current<> $GITHUB_OUTPUT + echo "$CURRENT" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + echo "full<> $GITHUB_OUTPUT + echo "$FULL" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + + - name: ZIP-Datei erstellen + id: zip + run: | + cd repo + + ZIP_FOLDER="${{ steps.config.outputs.zip_folder }}" + ZIP_FILE="${ZIP_FOLDER}.zip" + + echo "ZIP_FOLDER: $ZIP_FOLDER" + echo "ZIP_FILE: $ZIP_FILE" + + VERSION="${{ steps.releaseinfo.outputs.version }}" + REPO_NAME="${GITHUB_REPOSITORY##*/}" + #ZIP_NAME="${REPO_NAME}-${VERSION}.zip" + + + mkdir -p dist/${ZIP_FOLDER} + + rsync -a \ + --exclude='.git' \ + --exclude='.gitea' \ + --exclude='.plugin' \ + --exclude='dist' \ + --exclude='plugin.cfg' \ + ./ dist/${ZIP_FOLDER}/ + + cd dist + zip -r "${ZIP_FILE}" "${ZIP_FOLDER}/" \ + -x "*.pyc" -x "*/__pycache__/*" + cd .. + + echo "zip_file=${ZIP_FILE}" >> $GITHUB_OUTPUT + + - name: Gitea-Release erstellen + id: create_release + run: | + TAG="${{ github.ref_name }}" + VERSION="${{ steps.releaseinfo.outputs.version }}" + CHANNEL="${{ steps.releaseinfo.outputs.channel }}" + + API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases" + + JSON=$(jq -n \ + --arg tag "$TAG" \ + --arg name "Version $VERSION" \ + --arg body "${{ steps.changelog.outputs.current }}" \ + --argjson draft "${{ steps.releaseinfo.outputs.draft }}" \ + --argjson prerelease "${{ steps.releaseinfo.outputs.prerelease }}" \ + '{tag_name: $tag, name: $name, body: $body, draft: $draft, prerelease: $prerelease}') + + API_RESPONSE=$(curl -s -X POST "$API_URL" \ + -H "accept: application/json" \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + -H "Content-Type: application/json" \ + -d "$JSON") + + RELEASE_ID=$(echo "$API_RESPONSE" | jq -r '.id') + + if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then + echo "Fehler beim Erstellen des Releases!" + echo "$API_RESPONSE" + exit 1 + fi + + echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT + + - name: ZIP-Datei hochladen + run: | + RELEASE_ID="${{ steps.create_release.outputs.release_id }}" + ZIP_FILE="${{ steps.zip.outputs.zip_file }}" + + API_URL="https://${{ vars.RELEASE_URL }}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=${ZIP_FILE}" + + curl -s -X POST "$API_URL" \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + -H "Content-Type: application/zip" \ + --data-binary "@repo/dist/${ZIP_FILE}" \ + -o upload_response.json + + # Optional: Fehlerprüfung + if jq -e '.id' upload_response.json >/dev/null 2>&1; then + echo "ZIP erfolgreich hochgeladen." + else + echo "Fehler beim Hochladen der ZIP!" + exit 1 + fi + + - name: Payload erzeugen + run: | + cd repo + + VERSION="${{ steps.releaseinfo.outputs.version }}" + CHANNEL="${{ steps.releaseinfo.outputs.channel }}" + ZIP_FILE="${{ steps.zip.outputs.zip_file }}" + + DOWNLOAD_URL="https://${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}/releases/download/${{ github.ref_name }}/${ZIP_FILE}" + + jq -n \ + --arg name "${{ steps.metadata.outputs.name }}" \ + --arg version "$VERSION" \ + --arg channel "$CHANNEL" \ + --arg description "${{ steps.metadata.outputs.description }}" \ + --arg author "${{ steps.metadata.outputs.author }}" \ + --arg email "${{ steps.metadata.outputs.email }}" \ + --arg qgis_min "${{ steps.metadata.outputs.qgisMinimumVersion }}" \ + --arg qgis_max "${{ steps.metadata.outputs.qgisMaximumVersion }}" \ + --arg homepage "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ + --arg tracker "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ + --arg repository "${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}" \ + --arg experimental "${{ steps.metadata.outputs.experimental }}" \ + --arg deprecated "${{ steps.metadata.outputs.deprecated }}" \ + --arg qt6 "${{ steps.metadata.outputs.supportsQt6 }}" \ + --arg id "${{ steps.config.outputs.zip_folder }}" \ + --arg url "$DOWNLOAD_URL" \ + --arg changelog "${{ steps.changelog.outputs.current }}" \ + '{ + name: $name, + version: $version, + channel: $channel, + description: $description, + author: $author, + email: $email, + qgis_min: $qgis_min, + qgis_max: $qgis_max, + homepage: $homepage, + tracker: $tracker, + repository: $repository, + experimental: $experimental, + deprecated: $deprecated, + qt6: $qt6, + id: $id, + url: $url, + changelog: $changelog + }' > payload.json + + - name: Repository aktualisieren + run: | + OWNER="AG_QGIS" + WORKFLOW="update.yml" + + PAYLOAD_B64=$(base64 -w0 repo/payload.json) + + FULL_NAME="${{ steps.metadata.outputs.name }}" + NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') + TAG="${{ steps.releaseinfo.outputs.version }}" + + JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" + + #JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\"}}" + + echo "DEBUG | Sende JSON:" + echo "$JSON" + + curl -X POST \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + -H "Content-Type: application/json" \ + -d "$JSON" \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + + - name: metadata.txt ins Repo committen + run: | + cd repo + + TAG="${{ github.ref_name }}" + VERSION="${{ steps.releaseinfo.outputs.version }}" + + # Branch aus Tag ableiten + case "$TAG" in + *-unstable*) + BRANCH="unstable" + ;; + *-testing*) + BRANCH="testing" + ;; + *) + BRANCH="main" + ;; + esac + + # Branch checkouten + git checkout "$BRANCH" + + # Falls es Änderungen gibt, commit und push + if git diff --quiet metadata.txt; then + echo "Keine Änderungen an metadata.txt" + else + git add metadata.txt + git commit -m "Update version to $VERSION" + git push origin "$BRANCH" + fi From 07f921eb0382261f4ab4330a75e1c8422a82b2e5 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 09:43:50 +0100 Subject: [PATCH 117/196] gitea actions ng2 --- .gitea/workflows/{release.yml => release.yaml} | 0 .gitea/workflows/{release_alt.yml => release_alt.txt} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .gitea/workflows/{release.yml => release.yaml} (100%) rename .gitea/workflows/{release_alt.yml => release_alt.txt} (100%) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yaml similarity index 100% rename from .gitea/workflows/release.yml rename to .gitea/workflows/release.yaml diff --git a/.gitea/workflows/release_alt.yml b/.gitea/workflows/release_alt.txt similarity index 100% rename from .gitea/workflows/release_alt.yml rename to .gitea/workflows/release_alt.txt From 69c086a3aea7953261167774a0d6d85a66f6c5c2 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 09:45:25 +0100 Subject: [PATCH 118/196] gitea actions ng3 --- .gitea/workflows/release.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 266596b..e86eb6f 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -14,6 +14,11 @@ jobs: shell: bash steps: + - name: Notwendige Abhängigkeiten installieren + shell: sh + run: | + apk add --no-cache bash + - name: Version und Kanal bestimmen id: releaseinfo run: | From 9982d125b1586691dfb3fb63c1db2b5c28d149a7 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 09:51:17 +0100 Subject: [PATCH 119/196] gitea actions ng4 --- .gitea/workflows/release.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index e86eb6f..e75b16b 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -26,12 +26,12 @@ jobs: VERSION="${TAG#v}" case "$TAG" in - *-unstable*) - CHANNEL="unstable" + *-testing*|*-t|*-T) + CHANNEL="testing" PRERELEASE="true" ;; - *-testing*) - CHANNEL="testing" + *-*) + CHANNEL="unstable" PRERELEASE="true" ;; *) From 2f2e78cc3431f3ee90e69854a7f8e04b289d7545 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 09:56:58 +0100 Subject: [PATCH 120/196] gitea actions ng4 --- .gitea/workflows/release.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index e75b16b..d4cbea4 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -23,20 +23,24 @@ jobs: id: releaseinfo run: | TAG="${{ github.ref_name }}" - VERSION="${TAG#v}" + RAW_VERSION="${TAG#v}" + BASE_VERSION="${RAW_VERSION%%-*}" case "$TAG" in *-testing*|*-t|*-T) CHANNEL="testing" PRERELEASE="true" + VERSION="${BASE_VERSION}-testing" ;; *-*) CHANNEL="unstable" PRERELEASE="true" + VERSION="${BASE_VERSION}-unstable" ;; *) CHANNEL="stable" PRERELEASE="false" + VERSION="${BASE_VERSION}" ;; esac From be1c64c1c30c09b4d1a193d97bf7e87c82ab11ba Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 10:02:26 +0100 Subject: [PATCH 121/196] gitea actions ng5 --- .gitea/workflows/release.yaml | 52 ++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index d4cbea4..beff8c6 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -26,28 +26,48 @@ jobs: RAW_VERSION="${TAG#v}" BASE_VERSION="${RAW_VERSION%%-*}" - case "$TAG" in - *-testing*|*-t|*-T) - CHANNEL="testing" - PRERELEASE="true" - VERSION="${BASE_VERSION}-testing" - ;; - *-*) - CHANNEL="unstable" - PRERELEASE="true" - VERSION="${BASE_VERSION}-unstable" - ;; - *) + # Volles Repo auschecken, damit wir Branch-Info haben + git fetch --all --tags + + # Branch ermitteln, auf dem der Tag liegt + BRANCH=$(git branch -r --contains "$TAG" | grep -v 'HEAD' | head -n1 | sed 's|origin/||') + echo "Branch des Tags: $BRANCH" + + # Channel und Suffix automatisch bestimmen + case "$BRANCH" in + main) CHANNEL="stable" PRERELEASE="false" - VERSION="${BASE_VERSION}" + SUFFIX="" + ;; + testing) + CHANNEL="testing" + PRERELEASE="true" + SUFFIX="-testing" + ;; + unstable) + CHANNEL="unstable" + PRERELEASE="true" + SUFFIX="-unstable" + ;; + *) + # unbekannter Branch -> default unstable + CHANNEL="unstable" + PRERELEASE="true" + SUFFIX="-unstable" ;; esac + # Version zusammensetzen + VERSION="${BASE_VERSION}${SUFFIX}" + + # Output setzen echo "version=$VERSION" >> $GITHUB_OUTPUT echo "channel=$CHANNEL" >> $GITHUB_OUTPUT echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT - echo "version=$VERSION" - echo "channel=$CHANNEL" - echo "prerelease=$PRERELEASE" \ No newline at end of file + # Debug + echo "Tag: $TAG" + echo "Version: $VERSION" + echo "Channel: $CHANNEL" + echo "Prerelease: $PRERELEASE" \ No newline at end of file From be3811785b9df0b7d04064ad419e997c6eba9799 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 10:03:13 +0100 Subject: [PATCH 122/196] gitea actions ng6 --- .gitea/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index beff8c6..cce0f84 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -17,7 +17,7 @@ jobs: - name: Notwendige Abhängigkeiten installieren shell: sh run: | - apk add --no-cache bash + apk add --no-cache bash git - name: Version und Kanal bestimmen id: releaseinfo From bebdc996dba970081319c1f846db02399e617ca1 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 10:04:53 +0100 Subject: [PATCH 123/196] gitea actions ng7 --- .gitea/workflows/release.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index cce0f84..8c2bd4f 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -27,7 +27,9 @@ jobs: BASE_VERSION="${RAW_VERSION%%-*}" # Volles Repo auschecken, damit wir Branch-Info haben - git fetch --all --tags + REPO_URL="https://${RELEASE_TOKEN}:x-oauth-basic@${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}.git" + git clone "$REPO_URL" repo + cd repo # Branch ermitteln, auf dem der Tag liegt BRANCH=$(git branch -r --contains "$TAG" | grep -v 'HEAD' | head -n1 | sed 's|origin/||') From 2223628050de4c63b880557fb0b072ec43d5819c Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 10:12:03 +0100 Subject: [PATCH 124/196] gitea actions ng8 --- .gitea/workflows/release.yaml | 36 +++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 8c2bd4f..7e2bc51 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -33,7 +33,6 @@ jobs: # Branch ermitteln, auf dem der Tag liegt BRANCH=$(git branch -r --contains "$TAG" | grep -v 'HEAD' | head -n1 | sed 's|origin/||') - echo "Branch des Tags: $BRANCH" # Channel und Suffix automatisch bestimmen case "$BRANCH" in @@ -72,4 +71,37 @@ jobs: echo "Tag: $TAG" echo "Version: $VERSION" echo "Channel: $CHANNEL" - echo "Prerelease: $PRERELEASE" \ No newline at end of file + echo "Prerelease: $PRERELEASE" + + - name: plugin.cfg einlesen + id: config + run: | + cd repo + while read -r line || [ -n "$line" ]; do + key="${line%%=*}" + value="${line#*=}" + echo "$key=$value" >> $GITHUB_OUTPUT + done < plugin.cfg + + - name: Payload erzeugen + run: | + cd repo + + VERSION="${{ steps.releaseinfo.outputs.version }}" + CHANNEL="${{ steps.releaseinfo.outputs.channel }}" + PRERELEASE="${{ steps.releaseinfo.outputs.prerelease }}" + ZIP_FOLDER="${{ steps.config.outputs.zip_folder }}" + + jq -n \ + --arg version "$VERSION" \ + --arg channel "$CHANNEL" \ + --arg prerelease "$PRERELEASE" \ + --arg zip_folder "$ZIP_FOLDER" \ + '{ + version: $version, + channel: $channel, + prerelease: ($prerelease == "true"), + zip_folder: $zip_folder + }' > payload.json + + cat payload.json \ No newline at end of file From e760b75bf5f88b77405cc52db380829af3550b0c Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 10:12:55 +0100 Subject: [PATCH 125/196] gitea actions ng9 --- .gitea/workflows/release.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 7e2bc51..b140967 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -17,7 +17,7 @@ jobs: - name: Notwendige Abhängigkeiten installieren shell: sh run: | - apk add --no-cache bash git + apk add --no-cache bash git jd - name: Version und Kanal bestimmen id: releaseinfo @@ -104,4 +104,4 @@ jobs: zip_folder: $zip_folder }' > payload.json - cat payload.json \ No newline at end of file + cat payload.json \ No newline at end of file From a9089703264647a86e637692c01903dcc1823603 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 10:13:42 +0100 Subject: [PATCH 126/196] gitea actions ng10 --- .gitea/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index b140967..9016a2e 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -17,7 +17,7 @@ jobs: - name: Notwendige Abhängigkeiten installieren shell: sh run: | - apk add --no-cache bash git jd + apk add --no-cache bash git jq - name: Version und Kanal bestimmen id: releaseinfo From 29759a7a4a1e0c81ce3872e1fe52b391432f1e0d Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 10:16:50 +0100 Subject: [PATCH 127/196] gitea actions ng11 --- .gitea/workflows/release.yaml | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 9016a2e..231b3d5 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -67,12 +67,6 @@ jobs: echo "channel=$CHANNEL" >> $GITHUB_OUTPUT echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT - # Debug - echo "Tag: $TAG" - echo "Version: $VERSION" - echo "Channel: $CHANNEL" - echo "Prerelease: $PRERELEASE" - - name: plugin.cfg einlesen id: config run: | @@ -104,4 +98,20 @@ jobs: zip_folder: $zip_folder }' > payload.json - cat payload.json \ No newline at end of file + - name: Repository aktualisieren + run: | + OWNER="AG_QGIS" + WORKFLOW="update.yml" + + PAYLOAD_B64=$(base64 -w0 repo/payload.json) + + FULL_NAME="${{ steps.metadata.outputs.name }}" + NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') + TAG="${{ steps.releaseinfo.outputs.version }}" + + JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" + curl -X POST \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + -H "Content-Type: application/json" \ + -d "$JSON" \ + "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" From 7c71b0a9acc00d656f97574052dcbdc65e3f0af7 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 10:17:37 +0100 Subject: [PATCH 128/196] gitea actions ng12 --- .gitea/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 231b3d5..5c4be58 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -17,7 +17,7 @@ jobs: - name: Notwendige Abhängigkeiten installieren shell: sh run: | - apk add --no-cache bash git jq + apk add --no-cache bash git jq curl - name: Version und Kanal bestimmen id: releaseinfo From c4ba53b17fe7544873769ab32a1c6a1d217f3e41 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 10:31:00 +0100 Subject: [PATCH 129/196] =?UTF-8?q?Workflow=20ge=C3=A4ndert,=20Repository?= =?UTF-8?q?=20=C3=BCbernimmt=20jetzt=20das=20Erstellen=20der=20ZIP=20und?= =?UTF-8?q?=20der=20Releases.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 5c4be58..17d1e12 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -101,7 +101,7 @@ jobs: - name: Repository aktualisieren run: | OWNER="AG_QGIS" - WORKFLOW="update.yml" + WORKFLOW="release.yaml" PAYLOAD_B64=$(base64 -w0 repo/payload.json) From 03b4b6ae2a65fcd999e2c765cd5ebed5f2364d25 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 11:02:53 +0100 Subject: [PATCH 130/196] =?UTF-8?q?=C3=9Cbergabe=20Repo-URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 17d1e12..b096f4d 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -85,17 +85,20 @@ jobs: CHANNEL="${{ steps.releaseinfo.outputs.channel }}" PRERELEASE="${{ steps.releaseinfo.outputs.prerelease }}" ZIP_FOLDER="${{ steps.config.outputs.zip_folder }}" + GIT_URL=${GITHUB_REPOSITORY} jq -n \ --arg version "$VERSION" \ --arg channel "$CHANNEL" \ --arg prerelease "$PRERELEASE" \ --arg zip_folder "$ZIP_FOLDER" \ + --arg git_url "$GIT_URL" \ '{ version: $version, channel: $channel, prerelease: ($prerelease == "true"), - zip_folder: $zip_folder + zip_folder: $zip_folder, + git_url: $git_url }' > payload.json - name: Repository aktualisieren From e017d25870c750d68c9d71dd148f4b1d14db6967 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 14:35:15 +0100 Subject: [PATCH 131/196] =?UTF-8?q?=C3=9Cbergabe=20Name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index b096f4d..3846a89 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -81,6 +81,7 @@ jobs: run: | cd repo + NAME="${GITHUB_REPOSITORY##*/}" VERSION="${{ steps.releaseinfo.outputs.version }}" CHANNEL="${{ steps.releaseinfo.outputs.channel }}" PRERELEASE="${{ steps.releaseinfo.outputs.prerelease }}" @@ -88,12 +89,14 @@ jobs: GIT_URL=${GITHUB_REPOSITORY} jq -n \ + --arg name "$NAME" \ --arg version "$VERSION" \ --arg channel "$CHANNEL" \ --arg prerelease "$PRERELEASE" \ --arg zip_folder "$ZIP_FOLDER" \ - --arg git_url "$GIT_URL" \ + --arg git_url "$GIT_URL" \ '{ + name: $name, version: $version, channel: $channel, prerelease: ($prerelease == "true"), @@ -101,6 +104,8 @@ jobs: git_url: $git_url }' > payload.json + cat payload.json + - name: Repository aktualisieren run: | OWNER="AG_QGIS" From 33e5be856f51c3b36b83cf8809167a5303d44b96 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 17 Mar 2026 14:37:30 +0100 Subject: [PATCH 132/196] =?UTF-8?q?=C3=9Cbergabe=20Gruppe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 3846a89..230f79b 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -82,6 +82,7 @@ jobs: cd repo NAME="${GITHUB_REPOSITORY##*/}" + GROUP="${GITHUB_REPOSITORY%%/*}" VERSION="${{ steps.releaseinfo.outputs.version }}" CHANNEL="${{ steps.releaseinfo.outputs.channel }}" PRERELEASE="${{ steps.releaseinfo.outputs.prerelease }}" @@ -90,6 +91,7 @@ jobs: jq -n \ --arg name "$NAME" \ + --arg group "$GROUP" \ --arg version "$VERSION" \ --arg channel "$CHANNEL" \ --arg prerelease "$PRERELEASE" \ @@ -97,6 +99,7 @@ jobs: --arg git_url "$GIT_URL" \ '{ name: $name, + group: $group, version: $version, channel: $channel, prerelease: ($prerelease == "true"), From 92c2e7bcb94747538450a8c726fa79f8b940827c Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 06:29:34 +0100 Subject: [PATCH 133/196] =?UTF-8?q?Zipordner=20jetzt=20=C3=BCber=20Variabl?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yaml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 230f79b..be960f0 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -67,15 +67,15 @@ jobs: echo "channel=$CHANNEL" >> $GITHUB_OUTPUT echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT - - name: plugin.cfg einlesen - id: config - run: | - cd repo - while read -r line || [ -n "$line" ]; do - key="${line%%=*}" - value="${line#*=}" - echo "$key=$value" >> $GITHUB_OUTPUT - done < plugin.cfg + # - name: plugin.cfg einlesen + # id: config + # run: | + # cd repo + # while read -r line || [ -n "$line" ]; do + # key="${line%%=*}" + # value="${line#*=}" + # echo "$key=$value" >> $GITHUB_OUTPUT + # done < plugin.cfg - name: Payload erzeugen run: | @@ -86,7 +86,8 @@ jobs: VERSION="${{ steps.releaseinfo.outputs.version }}" CHANNEL="${{ steps.releaseinfo.outputs.channel }}" PRERELEASE="${{ steps.releaseinfo.outputs.prerelease }}" - ZIP_FOLDER="${{ steps.config.outputs.zip_folder }}" + ZIP_FOLDER="${{ vars.ZIP_FOLDER }}" + ZIP_FILE="${ZIP_FOLDER}.zip" GIT_URL=${GITHUB_REPOSITORY} jq -n \ @@ -96,6 +97,7 @@ jobs: --arg channel "$CHANNEL" \ --arg prerelease "$PRERELEASE" \ --arg zip_folder "$ZIP_FOLDER" \ + --arg zip_file "$ZIP_FILE" \ --arg git_url "$GIT_URL" \ '{ name: $name, @@ -104,6 +106,7 @@ jobs: channel: $channel, prerelease: ($prerelease == "true"), zip_folder: $zip_folder, + zip_file: $zip_file, git_url: $git_url }' > payload.json From c7eaa8dd6aaddd52cbffcc9028a83062933fb4a6 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 06:01:56 +0000 Subject: [PATCH 134/196] Release 22-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index f25ea89..988fa50 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1 +1,3 @@ +--- +Version 22-unstable - Initiales Release \ No newline at end of file diff --git a/metadata.txt b/metadata.txt index bd383c4..5167b69 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=0 +version=22-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From d1ec0e9c78e08aed772112aceca0049d716c30d2 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 07:28:55 +0100 Subject: [PATCH 135/196] =?UTF-8?q?Verzeichnis=20aufger=C3=A4umt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.txt | 1 + create_release_tag.bat | 41 ----------------------------------------- plugin.cfg | 1 - 3 files changed, 1 insertion(+), 42 deletions(-) delete mode 100644 create_release_tag.bat delete mode 100644 plugin.cfg diff --git a/changelog.txt b/changelog.txt index 988fa50..10cf7f9 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,4 @@ + - Verzeichniss aufgeräumt --- Version 22-unstable - Initiales Release \ No newline at end of file diff --git a/create_release_tag.bat b/create_release_tag.bat deleted file mode 100644 index f9c33a8..0000000 --- a/create_release_tag.bat +++ /dev/null @@ -1,41 +0,0 @@ -@echo off -setlocal enabledelayedexpansion - -echo Erstelle einen neuen Release-Tag -echo. - -set /p CHANNEL="Kanal eingeben (stable/testing/unstable): " -set /p VERSION="Version eingeben (z.B. 26.3.8): " - -if "%CHANNEL%"=="stable" ( - set TAG=v%VERSION% -) else if "%CHANNEL%"=="testing" ( - set TAG=v%VERSION%-testing -) else if "%CHANNEL%"=="unstable" ( - set TAG=v%VERSION%-unstable -) else ( - echo Ungueltiger Kanal. Verwende 'stable', 'testing' oder 'unstable'. - pause - exit /b 1 -) - -echo Erstelle Tag: %TAG% -git tag %TAG% - -if %errorlevel% neq 0 ( - echo Fehler beim Erstellen des Tags. - pause - exit /b 1 -) - -echo Pushe Tag: %TAG% -git push origin %TAG% - -if %errorlevel% neq 0 ( - echo Fehler beim Pushen des Tags. - pause - exit /b 1 -) - -echo Tag %TAG% erfolgreich erstellt und gepusht. -pause \ No newline at end of file diff --git a/plugin.cfg b/plugin.cfg deleted file mode 100644 index ca2e625..0000000 --- a/plugin.cfg +++ /dev/null @@ -1 +0,0 @@ -zip_folder=plugin_folder From 2fb265f2489dfaae96b87a2bef39d01d16ad6f75 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 06:29:22 +0000 Subject: [PATCH 136/196] Release 23-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 10cf7f9..627311e 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,5 @@ +--- +Version 23-unstable - Verzeichniss aufgeräumt --- Version 22-unstable diff --git a/metadata.txt b/metadata.txt index 5167b69..acb2246 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=22-unstable +version=23-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 5c2bb87bb5184ced9148ca41ed4858e15e4b96d1 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 06:39:26 +0000 Subject: [PATCH 137/196] Release 24-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 627311e..b585566 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 24-unstable: +--- Version 23-unstable - Verzeichniss aufgeräumt --- diff --git a/metadata.txt b/metadata.txt index acb2246..0643435 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=23-unstable +version=24-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From f24bf35eba20988a48d626953bcb523ecb357c3c Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 06:41:18 +0000 Subject: [PATCH 138/196] Release 25-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index b585566..7766832 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 25-unstable: +--- Version 24-unstable: --- Version 23-unstable diff --git a/metadata.txt b/metadata.txt index 0643435..4b0674e 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=24-unstable +version=25-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 8c8d67cc0c33b544c5552d8fedd9e6ce87391870 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 06:58:54 +0000 Subject: [PATCH 139/196] Release 26-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 7766832..d311a41 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 26-unstable-unstable: +--- Version 25-unstable: --- Version 24-unstable: diff --git a/metadata.txt b/metadata.txt index 4b0674e..c83e3f1 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=25-unstable +version=26-unstable-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 42d6640ff8807b9b700c9614bfa3d1540e76c884 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 11:27:28 +0100 Subject: [PATCH 140/196] =?UTF-8?q?=C3=84nderung=20bei=20der=20Vergabe=20d?= =?UTF-8?q?er=20Tags!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yaml | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index be960f0..de2b319 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -26,36 +26,22 @@ jobs: RAW_VERSION="${TAG#v}" BASE_VERSION="${RAW_VERSION%%-*}" - # Volles Repo auschecken, damit wir Branch-Info haben - REPO_URL="https://${RELEASE_TOKEN}:x-oauth-basic@${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}.git" - git clone "$REPO_URL" repo - cd repo - - # Branch ermitteln, auf dem der Tag liegt - BRANCH=$(git branch -r --contains "$TAG" | grep -v 'HEAD' | head -n1 | sed 's|origin/||') - - # Channel und Suffix automatisch bestimmen - case "$BRANCH" in - main) - CHANNEL="stable" - PRERELEASE="false" - SUFFIX="" - ;; - testing) + # Channel und Suffix automatisch bestimmen anhand des Tag-Suffix + case "$RAW_VERSION" in + *-testing*|*-t|*-T) CHANNEL="testing" PRERELEASE="true" SUFFIX="-testing" ;; - unstable) + *-unstable*|*-u|*-U) CHANNEL="unstable" PRERELEASE="true" SUFFIX="-unstable" ;; *) - # unbekannter Branch -> default unstable - CHANNEL="unstable" - PRERELEASE="true" - SUFFIX="-unstable" + CHANNEL="stable" + PRERELEASE="false" + SUFFIX="" ;; esac @@ -67,6 +53,13 @@ jobs: echo "channel=$CHANNEL" >> $GITHUB_OUTPUT echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT + # Optional Debug + echo "TAG=$TAG" + echo "BASE_VERSION=$BASE_VERSION" + echo "VERSION=$VERSION" + echo "CHANNEL=$CHANNEL" + echo "PRERELEASE=$PRERELEASE" + # - name: plugin.cfg einlesen # id: config # run: | From 8c28591b5673672fcd795fc48d543ad28a7ec342 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 11:30:37 +0100 Subject: [PATCH 141/196] =?UTF-8?q?step=20version=20ge=C3=A4ndert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index de2b319..723eb5d 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -24,7 +24,6 @@ jobs: run: | TAG="${{ github.ref_name }}" RAW_VERSION="${TAG#v}" - BASE_VERSION="${RAW_VERSION%%-*}" # Channel und Suffix automatisch bestimmen anhand des Tag-Suffix case "$RAW_VERSION" in @@ -45,9 +44,6 @@ jobs: ;; esac - # Version zusammensetzen - VERSION="${BASE_VERSION}${SUFFIX}" - # Output setzen echo "version=$VERSION" >> $GITHUB_OUTPUT echo "channel=$CHANNEL" >> $GITHUB_OUTPUT @@ -55,7 +51,6 @@ jobs: # Optional Debug echo "TAG=$TAG" - echo "BASE_VERSION=$BASE_VERSION" echo "VERSION=$VERSION" echo "CHANNEL=$CHANNEL" echo "PRERELEASE=$PRERELEASE" From cf51443b934a81f2eff14aa590edcaf28b03e15e Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 11:01:09 +0000 Subject: [PATCH 142/196] Release 27-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index d311a41..df4988a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 27-unstable-unstable: +--- Version 26-unstable-unstable: --- Version 25-unstable: diff --git a/metadata.txt b/metadata.txt index c83e3f1..0c6c601 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=26-unstable-unstable +version=27-unstable-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From b917d7f51df2cf54410c203bcacae2fe944d5fa2 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 12:05:44 +0100 Subject: [PATCH 143/196] =?UTF-8?q?Ermittlung=20der=20Version=20ge=C3=A4nd?= =?UTF-8?q?ert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 723eb5d..8b62c01 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -24,6 +24,7 @@ jobs: run: | TAG="${{ github.ref_name }}" RAW_VERSION="${TAG#v}" + VERSION="${RAW_VERSION%%-*}" # Channel und Suffix automatisch bestimmen anhand des Tag-Suffix case "$RAW_VERSION" in From 0f16d26ecd8f679eb354b7a5bd1359a43fc4cf2d Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 12:09:59 +0100 Subject: [PATCH 144/196] v1 --- .gitea/workflows/release.yaml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 8b62c01..f4e18d6 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -19,6 +19,18 @@ jobs: run: | apk add --no-cache bash git jq curl + - name: Code holen + run: | + REPO_URL="https://${RELEASE_TOKEN}:x-oauth-basic@${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}.git" + + git clone "$REPO_URL" repo + cd repo + + git checkout "$TAG" + env: + RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} + TAG: "${{ github.ref_name }}" + - name: Version und Kanal bestimmen id: releaseinfo run: | @@ -51,7 +63,6 @@ jobs: echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT # Optional Debug - echo "TAG=$TAG" echo "VERSION=$VERSION" echo "CHANNEL=$CHANNEL" echo "PRERELEASE=$PRERELEASE" From 008fead16099af51209ade8673fe1886daf614e6 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 11:10:23 +0000 Subject: [PATCH 145/196] Release 30 --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index df4988a..ef5dad3 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 30-unstable: +--- Version 27-unstable-unstable: --- Version 26-unstable-unstable: diff --git a/metadata.txt b/metadata.txt index 0c6c601..d074fec 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=27-unstable-unstable +version=30-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From d9ee9b54807de5b7906c52aeef23921481f3d24d Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 12:17:53 +0100 Subject: [PATCH 146/196] v2 --- .gitea/workflows/release.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index f4e18d6..1505558 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -120,8 +120,10 @@ jobs: PAYLOAD_B64=$(base64 -w0 repo/payload.json) FULL_NAME="${{ steps.metadata.outputs.name }}" + echo $FULL_NAME NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') - TAG="${{ steps.releaseinfo.outputs.version }}" + + TAG="${{ steps.releaseinfo.outputs.version }}"-"${{ steps.releaseinfo.outputs.channel }}" JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" curl -X POST \ From 3f427ba5aee60c73b953809b40dcb15f28e278e1 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 11:18:38 +0000 Subject: [PATCH 147/196] Release 31 --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index ef5dad3..54d25e9 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 31-unstable: +--- Version 30-unstable: --- Version 27-unstable-unstable: diff --git a/metadata.txt b/metadata.txt index d074fec..716f382 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=30-unstable +version=31-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 7c8dd32cf9703707e21a091d156948e5ba185c8e Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 13:04:40 +0100 Subject: [PATCH 148/196] v3 --- .gitea/workflows/release.yaml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 1505558..7073f72 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -78,6 +78,7 @@ jobs: # done < plugin.cfg - name: Payload erzeugen + id: payload run: | cd repo @@ -114,20 +115,20 @@ jobs: - name: Repository aktualisieren run: | - OWNER="AG_QGIS" - WORKFLOW="release.yaml" - - PAYLOAD_B64=$(base64 -w0 repo/payload.json) - - FULL_NAME="${{ steps.metadata.outputs.name }}" - echo $FULL_NAME - NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') + # echo $FULL_NAME + # NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') TAG="${{ steps.releaseinfo.outputs.version }}"-"${{ steps.releaseinfo.outputs.channel }}" - JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" + JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$FULL_NAME\",\"tag\":\"$TAG\"}}" curl -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ -d "$JSON" \ "https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches" + env: + RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} + OWNER: "AG_QGIS" + WORKFLOW: "release.yaml" + PAYLOAD_B64: ${{ steps.payload.outputs.payload }} + FULL_NAME: ${{ steps.payload.outputs.name }} \ No newline at end of file From 7c6e1023628c0f3f64f4d3196d7659d95ec5344f Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 13:08:28 +0100 Subject: [PATCH 149/196] v4 --- .gitea/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 7073f72..9049352 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -130,5 +130,5 @@ jobs: RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} OWNER: "AG_QGIS" WORKFLOW: "release.yaml" - PAYLOAD_B64: ${{ steps.payload.outputs.payload }} + PAYLOAD_B64: $(base64 -w0 repo/payload.json) FULL_NAME: ${{ steps.payload.outputs.name }} \ No newline at end of file From da7edb89044953482cc5a313e6f4cd9e64efc771 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 13:12:00 +0100 Subject: [PATCH 150/196] v5 --- .gitea/workflows/release.yaml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 9049352..96a84c8 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -115,12 +115,9 @@ jobs: - name: Repository aktualisieren run: | - # echo $FULL_NAME - # NAME=$(echo "$FULL_NAME" | awk -F'|' '{gsub(/^ +| +$/,"",$2); print $2}') - TAG="${{ steps.releaseinfo.outputs.version }}"-"${{ steps.releaseinfo.outputs.channel }}" - JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$FULL_NAME\",\"tag\":\"$TAG\"}}" + JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" curl -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ @@ -131,4 +128,4 @@ jobs: OWNER: "AG_QGIS" WORKFLOW: "release.yaml" PAYLOAD_B64: $(base64 -w0 repo/payload.json) - FULL_NAME: ${{ steps.payload.outputs.name }} \ No newline at end of file + NAME: "${GITHUB_REPOSITORY##*/}" \ No newline at end of file From 443c4744156c9ccadb71628bd40c90b60539a043 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 13:13:11 +0100 Subject: [PATCH 151/196] v6 --- .gitea/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 96a84c8..0987d91 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -115,6 +115,7 @@ jobs: - name: Repository aktualisieren run: | + NAME="${GITHUB_REPOSITORY##*/}" TAG="${{ steps.releaseinfo.outputs.version }}"-"${{ steps.releaseinfo.outputs.channel }}" JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" @@ -128,4 +129,3 @@ jobs: OWNER: "AG_QGIS" WORKFLOW: "release.yaml" PAYLOAD_B64: $(base64 -w0 repo/payload.json) - NAME: "${GITHUB_REPOSITORY##*/}" \ No newline at end of file From bbe566b9405dc31379d7d3fa12ad496ea81fb909 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 13:22:01 +0100 Subject: [PATCH 152/196] v7 --- .gitea/workflows/release.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 0987d91..8440b72 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -117,6 +117,8 @@ jobs: run: | NAME="${GITHUB_REPOSITORY##*/}" TAG="${{ steps.releaseinfo.outputs.version }}"-"${{ steps.releaseinfo.outputs.channel }}" + PAYLOAD_B64=$(base64 -w0 repo/payload.json) + JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" curl -X POST \ @@ -128,4 +130,4 @@ jobs: RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} OWNER: "AG_QGIS" WORKFLOW: "release.yaml" - PAYLOAD_B64: $(base64 -w0 repo/payload.json) + \ No newline at end of file From b41c6cadae3ff9c9ea89f4d89a3c8ffbe20b9eae Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 12:22:30 +0000 Subject: [PATCH 153/196] Release 37 --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 54d25e9..dea0a05 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 37-unstable: +--- Version 31-unstable: --- Version 30-unstable: diff --git a/metadata.txt b/metadata.txt index 716f382..1ad4db3 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=31-unstable +version=37-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 89a000466d779407184f1513b36c43976dd5e951 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 13:24:03 +0100 Subject: [PATCH 154/196] v8 --- .gitea/workflows/release.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 8440b72..dcd6986 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -89,7 +89,8 @@ jobs: PRERELEASE="${{ steps.releaseinfo.outputs.prerelease }}" ZIP_FOLDER="${{ vars.ZIP_FOLDER }}" ZIP_FILE="${ZIP_FOLDER}.zip" - GIT_URL=${GITHUB_REPOSITORY} + TAG="${{ github.ref_name }}" + #GIT_URL=${GITHUB_REPOSITORY} jq -n \ --arg name "$NAME" \ @@ -99,7 +100,7 @@ jobs: --arg prerelease "$PRERELEASE" \ --arg zip_folder "$ZIP_FOLDER" \ --arg zip_file "$ZIP_FILE" \ - --arg git_url "$GIT_URL" \ + --arg tag "$TAG" \ '{ name: $name, group: $group, @@ -108,7 +109,7 @@ jobs: prerelease: ($prerelease == "true"), zip_folder: $zip_folder, zip_file: $zip_file, - git_url: $git_url + tag: $tag }' > payload.json cat payload.json From 27e75662ddd84dfb4a598b668a2897e1a37e3ba8 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Wed, 18 Mar 2026 13:27:45 +0100 Subject: [PATCH 155/196] v9 --- .gitea/workflows/release.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index dcd6986..bc3660e 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -120,7 +120,6 @@ jobs: TAG="${{ steps.releaseinfo.outputs.version }}"-"${{ steps.releaseinfo.outputs.channel }}" PAYLOAD_B64=$(base64 -w0 repo/payload.json) - JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}" curl -X POST \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ From d102a3038223020a8bf1ee62d0dd03ff7c694034 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 12:28:33 +0000 Subject: [PATCH 156/196] Release 39 --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index dea0a05..81071c8 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 39-unstable: +--- Version 37-unstable: --- Version 31-unstable: diff --git a/metadata.txt b/metadata.txt index 1ad4db3..e40cc29 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=37-unstable +version=39-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 344d6bd4f20b562bacc1d3306793f3e79912710c Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 12:40:31 +0000 Subject: [PATCH 157/196] Release 43-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 81071c8..2cc0f95 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 43-unstable: +--- Version 39-unstable: --- Version 37-unstable: diff --git a/metadata.txt b/metadata.txt index e40cc29..180fce2 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=39-unstable +version=43-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 5b13d76f49d158ec87b2493f57274d4db8671211 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 12:47:29 +0000 Subject: [PATCH 158/196] Release 44-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 2cc0f95..a0fb56f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 44-unstable: +--- Version 43-unstable: --- Version 39-unstable: diff --git a/metadata.txt b/metadata.txt index 180fce2..f27a82a 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=43-unstable +version=44-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From cb57cb476223352aa9665adc230d94f037139c4f Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 12:52:44 +0000 Subject: [PATCH 159/196] Release 45-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index a0fb56f..8ab32b5 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 45-unstable: +--- Version 44-unstable: --- Version 43-unstable: diff --git a/metadata.txt b/metadata.txt index f27a82a..9258b3d 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=44-unstable +version=45-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 043b8565ee45e6953173bfb431d06d77b0a1141d Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 12:53:44 +0000 Subject: [PATCH 160/196] Release 46-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 8ab32b5..066ec7c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 46-unstable: +--- Version 45-unstable: --- Version 44-unstable: diff --git a/metadata.txt b/metadata.txt index 9258b3d..ab9021f 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=45-unstable +version=46-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 345c1381c8d39534cee0a7f8c452e61fbd4369fe Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 12:56:43 +0000 Subject: [PATCH 161/196] Release 47-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 066ec7c..5f5ef7d 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 47-unstable: +--- Version 46-unstable: --- Version 45-unstable: diff --git a/metadata.txt b/metadata.txt index ab9021f..9130cc6 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=46-unstable +version=47-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 6d74f0ebe8919edb6bf151d4804b0dbb99baa193 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 12:58:00 +0000 Subject: [PATCH 162/196] Release 48-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 5f5ef7d..4b51e51 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 48-unstable: +--- Version 47-unstable: --- Version 46-unstable: diff --git a/metadata.txt b/metadata.txt index 9130cc6..b5ae974 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=47-unstable +version=48-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 916b4501f9264611757e9db4a77c1c0a45873994 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 13:02:08 +0000 Subject: [PATCH 163/196] Release 49-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 4b51e51..fd9f975 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 49-unstable: +--- Version 48-unstable: --- Version 47-unstable: diff --git a/metadata.txt b/metadata.txt index b5ae974..58d1b9e 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=48-unstable +version=49-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From a13cf55c21ebfe99aa41bf1a526d5ee9ca4912c7 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 13:03:49 +0000 Subject: [PATCH 164/196] Release 50-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index fd9f975..0c20dd0 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 50-unstable: +--- Version 49-unstable: --- Version 48-unstable: diff --git a/metadata.txt b/metadata.txt index 58d1b9e..f256ace 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=49-unstable +version=50-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From a8427da05cb1528fb193c2c8ddd95d51459686d3 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 13:06:18 +0000 Subject: [PATCH 165/196] Release 51-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 0c20dd0..c382537 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 51-unstable: +--- Version 50-unstable: --- Version 49-unstable: diff --git a/metadata.txt b/metadata.txt index f256ace..2087c0e 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=50-unstable +version=51-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 8864789ce38047c0098ba78073ac9880bb8db467 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 13:21:14 +0000 Subject: [PATCH 166/196] Release 53-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index c382537..509e283 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 53-unstable: +--- Version 51-unstable: --- Version 50-unstable: diff --git a/metadata.txt b/metadata.txt index 2087c0e..959b1d9 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=51-unstable +version=53-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From a0cc33d95eb80000557e2de413115da268214629 Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 13:26:36 +0000 Subject: [PATCH 167/196] Release 54-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 509e283..4e1580a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 54-unstable: +--- Version 53-unstable: --- Version 51-unstable: diff --git a/metadata.txt b/metadata.txt index 959b1d9..8a4f66a 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=53-unstable +version=54-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 06af34a284a4762e3289f03763368ad189c63b2b Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 13:50:22 +0000 Subject: [PATCH 168/196] Release 55-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 4e1580a..261d233 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 55-unstable: +--- Version 54-unstable: --- Version 53-unstable: diff --git a/metadata.txt b/metadata.txt index 8a4f66a..e4e77c3 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=54-unstable +version=55-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 4c205acd499d5cfd58013afe10e4daee9b9e767f Mon Sep 17 00:00:00 2001 From: release-bot Date: Wed, 18 Mar 2026 14:03:51 +0000 Subject: [PATCH 169/196] Release 26.3.1-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 261d233..92ff82f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 26.3.1-unstable: +--- Version 55-unstable: --- Version 54-unstable: diff --git a/metadata.txt b/metadata.txt index e4e77c3..a16b753 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=55-unstable +version=26.3.1-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 97e14debbeec2b05ab72929d4b67266cda194249 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 07:19:19 +0100 Subject: [PATCH 170/196] changelog.txt aktualisiert --- changelog.txt | 50 ++------------------------------------------------ 1 file changed, 2 insertions(+), 48 deletions(-) diff --git a/changelog.txt b/changelog.txt index 92ff82f..e4a7d81 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,48 +1,2 @@ ---- -Version 26.3.1-unstable: ---- -Version 55-unstable: ---- -Version 54-unstable: ---- -Version 53-unstable: ---- -Version 51-unstable: ---- -Version 50-unstable: ---- -Version 49-unstable: ---- -Version 48-unstable: ---- -Version 47-unstable: ---- -Version 46-unstable: ---- -Version 45-unstable: ---- -Version 44-unstable: ---- -Version 43-unstable: ---- -Version 39-unstable: ---- -Version 37-unstable: ---- -Version 31-unstable: ---- -Version 30-unstable: ---- -Version 27-unstable-unstable: ---- -Version 26-unstable-unstable: ---- -Version 25-unstable: ---- -Version 24-unstable: ---- -Version 23-unstable - - Verzeichniss aufgeräumt ---- -Version 22-unstable - - Initiales Release \ No newline at end of file +- Änderung 1 +- Änderung 2 \ No newline at end of file From ffaed7f002f995cf734f5f32ca6efc7d63d70fed Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 06:20:17 +0000 Subject: [PATCH 171/196] Release 1-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index e4a7d81..d7e88da 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,2 +1,4 @@ +--- +Version 1-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file diff --git a/metadata.txt b/metadata.txt index a16b753..178c89c 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=26.3.1-unstable +version=1-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 8ce978465daf8d6dd2effb99a0983f6f8a115121 Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 06:22:46 +0000 Subject: [PATCH 172/196] Release 2-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index d7e88da..ee0fde9 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 2-unstable: +--- Version 1-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file diff --git a/metadata.txt b/metadata.txt index 178c89c..ede1a0b 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=1-unstable +version=2-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From afb05c467c67ce5798189ba4df2083eb36f1f46d Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 07:23:12 +0100 Subject: [PATCH 173/196] changelog.txt aktualisiert --- changelog.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.txt b/changelog.txt index ee0fde9..3a55bcc 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,5 @@ +- Änderung 3 +- Änderung 4 --- Version 2-unstable: --- From da49d69d180e2bb203c992cd1622469889b1866d Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 06:23:30 +0000 Subject: [PATCH 174/196] Release 3-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 3a55bcc..046a5db 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,5 @@ +--- +Version 3-unstable: - Änderung 3 - Änderung 4 --- diff --git a/metadata.txt b/metadata.txt index ede1a0b..2d60422 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=2-unstable +version=3-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From c99a3cf81c0f0703492849ed618fe492efddeee4 Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 06:28:31 +0000 Subject: [PATCH 175/196] Release 1-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 046a5db..5a121d0 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,6 @@ --- +Version 1-unstable: +--- Version 3-unstable: - Änderung 3 - Änderung 4 diff --git a/metadata.txt b/metadata.txt index 2d60422..178c89c 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=3-unstable +version=1-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 4928b07e5192425d1330a6c855a9167cd4c4ae3c Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 07:29:05 +0100 Subject: [PATCH 176/196] changelog.txt aktualisiert --- changelog.txt | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/changelog.txt b/changelog.txt index 5a121d0..e4a7d81 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,12 +1,2 @@ ---- -Version 1-unstable: ---- -Version 3-unstable: -- Änderung 3 -- Änderung 4 ---- -Version 2-unstable: ---- -Version 1-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file From 1cbfe6355467e91e06699a9d3a14388cbca86fd6 Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 06:29:24 +0000 Subject: [PATCH 177/196] Release 2-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index e4a7d81..05cbc17 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,2 +1,4 @@ +--- +Version 2-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file diff --git a/metadata.txt b/metadata.txt index 178c89c..ede1a0b 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=1-unstable +version=2-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 179657bc7373bb270c82293754d24a89fd90c069 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 07:32:50 +0100 Subject: [PATCH 178/196] changelog.txt aktualisiert --- changelog.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 05cbc17..e4a7d81 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,2 @@ ---- -Version 2-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file From 35660ebc9e9359b040eb2a3173d8c1bc179d2e85 Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 06:33:10 +0000 Subject: [PATCH 179/196] Release 3-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index e4a7d81..29e3ef0 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,2 +1,4 @@ +--- +Version 3-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file diff --git a/metadata.txt b/metadata.txt index ede1a0b..2d60422 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=2-unstable +version=3-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From d377f49f7e0167080cdb6048a2011a047cc4734e Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 07:37:22 +0100 Subject: [PATCH 180/196] changelog.txt aktualisiert --- changelog.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 29e3ef0..e4a7d81 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,2 @@ ---- -Version 3-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file From b6f9fa33c43185970cfac714c9e2cd415ca49102 Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 06:37:43 +0000 Subject: [PATCH 181/196] Release 4-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index e4a7d81..5cb4b13 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,2 +1,4 @@ +--- +Version 4-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file diff --git a/metadata.txt b/metadata.txt index 2d60422..4d5d370 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=3-unstable +version=4-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From f4d08185fe9b22897765e1615b2981783dbb6225 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 07:43:10 +0100 Subject: [PATCH 182/196] changelog.txt aktualisiert --- changelog.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 5cb4b13..e4a7d81 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,2 @@ ---- -Version 4-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file From 80e899d90f8b65bd68f9c7e505b92bcd1a299141 Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 06:43:30 +0000 Subject: [PATCH 183/196] Release 5-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index e4a7d81..0c992c9 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,2 +1,4 @@ +--- +Version 5-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file diff --git a/metadata.txt b/metadata.txt index 4d5d370..534daf6 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=4-unstable +version=5-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 9c36e2224c632059df35a118d6c878717be6b77d Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 07:57:56 +0100 Subject: [PATCH 184/196] changelog.txt aktualisiert --- changelog.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 0c992c9..e4a7d81 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,2 @@ ---- -Version 5-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file From 2643ef75bd31fd4f1296120e5b920b8a49c31189 Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 06:58:18 +0000 Subject: [PATCH 185/196] Release 6-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index e4a7d81..96fb01a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,2 +1,4 @@ +--- +Version 6-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file diff --git a/metadata.txt b/metadata.txt index 534daf6..26bc548 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=5-unstable +version=6-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 550375fa25f6fef822f86268afe7380f39a1c15d Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 08:01:40 +0100 Subject: [PATCH 186/196] changelog.txt aktualisiert --- changelog.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 96fb01a..e4a7d81 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,2 @@ ---- -Version 6-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file From 5f71302df7fc79dee6d6109b5d5dc17a0afb5310 Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 07:01:58 +0000 Subject: [PATCH 187/196] Release 7-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index e4a7d81..5aaed7f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,2 +1,4 @@ +--- +Version 7-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file diff --git a/metadata.txt b/metadata.txt index 26bc548..8a8babe 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=6-unstable +version=7-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From c3fb8c87abefa935539ff0a0615e121ad14eaa6e Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 08:05:48 +0100 Subject: [PATCH 188/196] changelog.txt aktualisiert --- changelog.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 5aaed7f..e4a7d81 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,2 @@ ---- -Version 7-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file From 94b251b3d5664f1345fef85e32829a41abf3aa0c Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 07:06:08 +0000 Subject: [PATCH 189/196] Release 8-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index e4a7d81..75699f3 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,2 +1,4 @@ +--- +Version 8-unstable: - Änderung 1 - Änderung 2 \ No newline at end of file diff --git a/metadata.txt b/metadata.txt index 8a8babe..dd8d4ee 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=7-unstable +version=8-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 184b4270bd0c4feec5aa5024a1621a93790ae19d Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 08:13:59 +0100 Subject: [PATCH 190/196] changelog.txt aktualisiert --- changelog.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.txt b/changelog.txt index 75699f3..d913ee6 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,5 @@ +- Änderung 3 +- Änderung 4 --- Version 8-unstable: - Änderung 1 From 739d6e150c26be12f19582bd558571ce45629276 Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 07:14:22 +0000 Subject: [PATCH 191/196] Release 9-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index d913ee6..c787e41 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,5 @@ +--- +Version 9-unstable: - Änderung 3 - Änderung 4 --- diff --git a/metadata.txt b/metadata.txt index dd8d4ee..5925e75 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=8-unstable +version=9-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 9dbf68e55a5f71f1384296fa4dd9d1b85eb1a80c Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 08:16:19 +0100 Subject: [PATCH 192/196] changelog.txt aktualisiert --- changelog.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.txt b/changelog.txt index c787e41..8cee1b7 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,5 @@ +- Änderung 5 +- Änderung 6 --- Version 9-unstable: - Änderung 3 From 2d78cb6ba8bf9fe2f5a9518ba97acaf7b2bd3a96 Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 07:16:38 +0000 Subject: [PATCH 193/196] Release 10-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 8cee1b7..640ec97 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,5 @@ +--- +Version 10-unstable: - Änderung 5 - Änderung 6 --- diff --git a/metadata.txt b/metadata.txt index 5925e75..0a67791 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=9-unstable +version=10-unstable author=Daniel Helbig email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action From 7423abec73d8ca049917815673bf1bb3432a28e7 Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 08:19:15 +0100 Subject: [PATCH 194/196] metadata.txt aktualisiert --- metadata.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.txt b/metadata.txt index 0a67791..99e8704 100644 --- a/metadata.txt +++ b/metadata.txt @@ -4,7 +4,7 @@ qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline version=10-unstable -author=Daniel Helbig +author=Daniel Helbig, Michael Otto email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action tracker=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action/issues From 36812dca5ed8ace6350c2c51ee76e7a0e554b5ca Mon Sep 17 00:00:00 2001 From: Michael Otto <22ottomi@noreply.localhost> Date: Thu, 19 Mar 2026 08:19:41 +0100 Subject: [PATCH 195/196] changelog.txt aktualisiert --- changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.txt b/changelog.txt index 640ec97..4146aa3 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,4 @@ +- metadata.txt aktualisiert --- Version 10-unstable: - Änderung 5 From 81034d63b8e2153ff6f108b0a3ce5f2d3a42d7ab Mon Sep 17 00:00:00 2001 From: release-bot Date: Thu, 19 Mar 2026 07:20:02 +0000 Subject: [PATCH 196/196] Release 11-unstable --- changelog.txt | 2 ++ metadata.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 4146aa3..ba0200c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,5 @@ +--- +Version 11-unstable: - metadata.txt aktualisiert --- Version 10-unstable: diff --git a/metadata.txt b/metadata.txt index 99e8704..bc5ef13 100644 --- a/metadata.txt +++ b/metadata.txt @@ -3,7 +3,7 @@ name=LNO Sachsen | Plugin Test Action qgisMinimumVersion=3.40 qgisMaximumVersion=3.99 description=Test plugin for release pipeline -version=10-unstable +version=11-unstable author=Daniel Helbig, Michael Otto email=daniel.helbig@kreis-meissen.de homepage=https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Plugin_Test_Action