Please welcome a new way to build Geany and Geany-Plugins for Windows in the CI.
What's in here: - the workflow job to checkout Geany-Plugins, Geany and Infrastructure repositories - use the supporting scripts in https://github.com/geany/infrastructure/tree/add_ci_builders/builders to - build a Docker image with a full MSYS2 installation (or pull the image from the Geany Docker registry if available) - use this Docker image to: - build Geany and create a release-like installer for it as build dependency for the G-P build (or use cache if available) - install Geany from the previously built Geany installer - build Geany-Plugins and create and test an installer - store the Geany and Geany-Plugins installer as artifact on Github
Mostly all of the work is done in the builder scripts on https://github.com/geany/infrastructure/tree/add_ci_builders/builders. Unfortunately, it grew more than than expected in terms of amount of code.
I tried to document at least the basics so anyone else than me will be available to get an idea what is happening. Let me know if it worked :).
There is a difference to the Linux CI build which more or less aims at using a rather old setup to ensure backwards compability. The Mingw-w64 build instead always pulls the latest available packages from the MSYS2 repositories. I think this is OK as this is also what we do on releases and since we bundle all dependencies into the installer (for release builds as well as for CI builds), the result should be consistent.
Best of all: during the CI build Windows installers are created for Geany and Geany-Plugins and they are stored as artifacts and can be downloaded later on (up to 30 days).
TODO: - this branch needs a bit more testing with this PR - we need to merge the PR XXX first - for now, the necessary Docker image was uploaded to https://github.com/geany/infrastructure/pkgs/container/geany-mingw64-ci by me manually. Basically we could push the image also from the CI job but I'm hesitating to allow this because of the risks it offers to malicious users. Maybe I'll add a separate job in the infrastructure repository later to build and push the image there and restrict this job to admins You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany-plugins/pull/1201
-- Commit Summary --
* CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build * Fix g-p source path * CI: Add Windows build * CI: Add Windows build * CI: Add Windows build
-- File Changes --
M .github/workflows/build.yml (140)
-- Patch Links --
https://github.com/geany/geany-plugins/pull/1201.patch https://github.com/geany/geany-plugins/pull/1201.diff
@eht16 pushed 19 commits.
719d5887280ae31f2ece34839e050f15b5fe97f2 Windows: xz is now bundled in Geany itself cedf2145d5ca9ab167f95bde23ff027f3bd4a2ca Project Organizer: Use system trash for file/folder removal b2d4496f15b7afea7e675f12a5dd55d6d5c610bb GeanyLua: Add geany.settype() 9a9a0aa86f74219496b59fe0377c878983bdaffd Migrate from Travis CI to Github Actions 826c016625104602ee39d40681dd340cd54ae13f Windows: Update sqlite version in bundle cleanup f3bc58f3a737e6c3c258f20ffaef80611aa0b1cc SpellCheck: Check document+clear indicators when toggling via keybinding 0236d05fa54c70e51e33f9b52783fe2a7936769f SpellCheck: Rename "Toggle spell check" setting 8c66d7cab3680253c203c30c99ce88348bd9406e Capitalise only the first word of keybinding labels 7f87b00d6f15fd6b86a744ab2ecd8bfe36cc7e54 Debugger: Fix typos in code comments bf574c86032aecac7b2959e537e0f8167c3b2def Addons: Bookmarks: Prevent duplicating bookmarks when editing line d226100f7e9fd42002decb1e7c574c85ea839329 GeanyVC: Support the use of external diff-tool in directory context 89b8226d8a28ec6f990cc32da20c457b363e789a GeanyVC:(Git) Fallback to `git rev-parse` for getting the repo/worktree's top directory 86177f0eca9d2306770857c2583cdf6350488a19 scope: Use FALSE instead of NULL for gboolean d6726b8d4f38115bae4078177deb224dca245a32 geanygendoc: Remove all sanity checks testing if tag is tm_tag_file_t da4b15518de1173c518874546a1d950740520c44 git-changebar: Simplify libgit2 version checks 49c706161206ef54844580054043dab4997f5919 git-changebar: Add support for libgit2 1.4 f5c0e7e2bd5b0cf8c7811c2d3e8555c603619748 git-changebar: Avoid harmless warnings dac1ecc797d5a57bf5c762fc1a41311019228018 Remove obsolete status badge 5fc176b69e4d5c1c4b1fefd49a38f7d05ef75945 CI: Add Windows build
@eht16 pushed 1 commit.
8fe41613653de27151655e8708abfcd0d8bf0cb3 CI: Add Windows build
@elextr @techee @b4n @kugel- review is welcome and don't be scared even there is much Windows and mingw in the title and description, the main part is just bash code to be executed on Linux and some Github Actions job definition :).
@eht16 pushed 1 commit.
4d96aa2d0c399c8c0e97ad471e1068d4f92aa50a CI: Upgrade Linux builds to Ubuntu 20.04
@eht16 pushed 1 commit.
3b931ddbdd22bdfe9bd7a8af31bdad31e471df3f CI: Upgrade Linux builds to Ubuntu 20.04
@eht16 pushed 1 commit.
b1e885d804ebfad48be1d55af8f03e261ae18f30 CI: Upgrade Linux builds to Ubuntu 20.04
@eht16 commented on this pull request.
@@ -4,13 +4,14 @@
name: CI Build
-on: - push: - branches: - - master - pull_request: - branches: - - master +on: push +#on:
This will be reverted before merge.
don't be scared even there is much Windows and mingw in the title
and github actions and docker and ... @elextr cautiously pokes PR, leaps on chair screaming when the word "Windows" appeared :grin:
I tried to document at least the basics so anyone else than me will be available to get an idea what is happening.
Let me know if it worked :).
Only a vague general outline, but thats more likely my lack of any detailed knowledge of mingw, docker, github actions (all the technologies used here :-) than your docs.
So I can say LGBI, but I doubt that inspection actually added any value ;-)
Probably best to get GP CI working again so this can be merged and tested.
@eht16 pushed 1 commit.
44831e8db42eff571663a5032ef5e306705ce512 Add Geany-Plugins CI build script
@eht16 pushed 1 commit.
d3599b245b7d18a7466ae904f2a3d8569c59f4cf Add Geany-Plugins CI build script
@eht16 pushed 1 commit.
f64edb2d72f6ef18485d6a4aeb27612ee4a17772 Add Geany-Plugins CI build script
@eht16 pushed 1 commit.
c2e184783da75fcea5851955561d2b7e9d3681be Update actions to latest version for Node 16 update
@eht16 pushed 1 commit.
bbbee5b915604c3148cf32e5623c2b1312dfdc6a Update actions to latest version for Node 16 update
@eht16 pushed 1 commit.
2e6ef9a1967751dabd5216372481a97d7cb06d4c Remove unnecessary directory changes
@eht16 pushed 1 commit.
75fe1ac709ce54cc40766b974243316143099abe Change infrastructure builders branch
@eht16 pushed 9 commits.
0baba64ff6f0e128af6ff8dba432bc93ec21dd76 CI: Add Windows build 8f64a5e4d5220dab0a852a38c2d3113e95e4cb33 CI: Upgrade Linux builds to Ubuntu 20.04 f6b8391e29d429da6c59ebe2726fc89b744ab45f Add Geany-Plugins CI build script 48fca75c8b5f7b9509e5758680766d681cb5570b Add Geany-Plugins CI build script b63c88bea31c6ae7f201b9ba4a0d6b9efad6957d Add Geany-Plugins CI build script cc03827617278db94224c2377fe2a3d3a6c9262a Update actions to latest version for Node 16 update cba77956e8a705423a090a52ff35382122e5ec5a Remove unnecessary directory changes 6c6e9a78e9aeb4d589bbb84aecbef1bc1c3f0145 Change infrastructure builders branch da9424e7249745ac2292448852dd356df4b0caa0 Remove CRLF text conversion
@eht16 pushed 1 commit.
938187533de3877c93aefb4fe18a2857ec4abb72 Remove CRLF text conversion
@eht16 pushed 1 commit.
8e3ec88fbaad0427faa06f675bf0e62c69a6859c GH Actions: Replace deprecated "set-output" command
This needs to be merged, its CI, it needs to run as CI for all plugins and we won't ever know if it works unless its merged so it applies to all plugins and their PRs. It can always be reverted (or preferably fixed) if it breaks something so don't be timid. But AFAIK we will never know until its merged and all (or at least those without conflicts) PRs are triggered to re-run.
@eht16 pushed 1 commit.
7ee00ef8c67f11404773bc0333f9060a250df44b Remove test settings
@eht16 pushed 1 commit.
ece3b2598467472b1bf2654e6fd7123705e79665 CI: Add Windows build
I fully agree. I just cleaned up the commit history and removed temporary test settings. Though we need to merge https://github.com/geany/geany/pull/3315 before.
There seems to be a new issue with the Linux build at "make distcheck" which might be related to the updated Ubuntu version (18.04 to 20.04), though I still have not yet investigated what's the root cause.
Failure is `/bin/bash: valac: command not found`, did it get installed?
@eht16 pushed 1 commit.
5139c89911dcd032a30dbd8a4f2134dffcb4aa91 Install valac for multiterm
@elextr commented on this pull request.
@@ -127,8 +127,9 @@ jobs:
libxml2-dev # spellcheck libenchant-dev + ä multiterm
Was this meant to be `# multiterm` ?
@eht16 pushed 1 commit.
912b2296837be844348f903855cfff793b79003e Install valac for multiterm
Multiterm would appear to be GTK2 only https://github.com/geany/geany-plugins/blob/a8fd23125049d0a0ae8655e2bf95d3f4... so should not be being CIed.
@eht16 commented on this pull request.
@@ -127,8 +127,9 @@ jobs:
libxml2-dev # spellcheck libenchant-dev + ä multiterm
Yeah, typo on German keyboard with tired eyes :).
Multiterm would appear to be GTK2 only
https://github.com/geany/geany-plugins/blob/a8fd23125049d0a0ae8655e2bf95d3f4... so should not be being CIed.
Yes, but even if it is disabled (by `./configure` itself and with `--disable-plugin-multiterm` explicitly), `make distcheck` wants to call `valac` anyway.
I guess this is some autotools magic which I do not understand.
We probably should finally remove old, unmaintained plugins from G-P.
We probably should finally remove old, unmaintained plugins from G-P.
Yes, even if they are deleted, they are still in the repository, not lost. If "somebody" wanted to resurrect a plugin they only need to checkout the 1.38 tag to get the source.
@eht16 pushed 1 commit.
655eeaca7daae67a912c7093fc7fcd28b847c883 CI: Add Windows build
@eht16 pushed 1 commit.
2c7bc518b1866be55d6cf9cd489d6e7f97d93379 Merge branch 'master' into ci_add_windows_build
@eht16 pushed 1 commit.
306f84c4f882e873f1aa68681cc41a3edb9416f0 CI: Add Windows build
@eht16 pushed 1 commit.
682bac9d94de36ca08913bb7ae70360162da6ea4 Windows: Update dependency removal cleanup on uninstall
@eht16 pushed 1 commit.
97c38e6bd818c486f922e564626a3765ca723358 debug...
@eht16 pushed 3 commits.
fdbb29d4f8623e3adff69e6668eaab11b04484f3 CI: Add Windows build e0da9a3df7477cb5c878656ee54396ded8604e5f Windows: Update dependency removal cleanup on uninstall 76b11fbbbd7f5ae3f08c325d573e22c6cedbcf75 debug...
@eht16 pushed 4 commits.
db7b0d8a03e644977b9187489f23c03c760fd53f CI: Add Windows build ad222a5667f6607213e6ada7c0d58832a57bada2 debug... 58baa1d0e89e1aadec067c857622adc3463983fb CI: Use "JOBS" environment variable for make if set 43f1b202b637c81cb5af6a6bf2f1e4728a8fc6c6 CI: Fix copied Geany source file permissions
@eht16 pushed 1 commit.
a9be6d6ee8c5d59fbd68e1c85e121a756d086347 CI: Add Windows build
@eht16 pushed 1 commit.
ccce45fba7bcd956edf5e087e8cc34b292fb18f7 CI: Add Windows build
Incorporated the changes from https://github.com/geany/geany/pull/3465 and builds are fine now.
I would like to merge this finally in a few days if there are no objections.
Merged #1201 into master.
github-comments@lists.geany.org