Commit Graph

44 Commits

Author SHA1 Message Date
Maxim Ganetsky
7997f0884b CI: enabled FPDebug test job to run automatically 2024-11-18 20:04:17 +00:00
Maxim Ganetsky
54ee10cd7c CI: added FPDebug test job (manual for now) 2024-11-18 19:24:28 +00:00
Maxim Ganetsky
defe854704 CI: enabled LCL test job to run automatically 2024-03-24 17:12:44 +00:00
Maxim Ganetsky
9c22f26428 CI: added LCL test job (manual for now) 2024-03-24 16:29:38 +00:00
Maxim Ganetsky
7fd8824fbc CI: Renamed Dockerfile to make code highlight to work in GitLab web interface. Also simplified it and made to terminate earlier in case of compilation errors. 2023-11-22 02:42:38 +03:00
Maxim Ganetsky
86b559253b CI: enabled 'tests-codetools' job to run by default 2023-07-20 16:23:02 +00:00
Maxim Ganetsky
8b17a65191 CI: added Pas2JS compiler to build image and Codetools test job (manual for now) 2023-07-19 18:46:48 +03:00
Maxim Ganetsky
f1f6c65d73 Revert "CI: try to prevent more duplicate pipelines in merge requests"
This reverts commit b326ae6b5b.

The rule does not make any difference, so no point to keep it.
2023-06-30 01:28:48 +03:00
Maxim Ganetsky
b326ae6b5b CI: try to prevent more duplicate pipelines in merge requests
See: https://docs.gitlab.com/ee/ci/yaml/workflow.html#switch-between-branch-pipelines-and-merge-request-pipelines
2023-06-28 16:14:59 +00:00
Maxim Ganetsky
ffe062f433 CI: Added ability to entirely disable pipeline if needed. Ability to switch pipeline jobs to manual mode is removed: it is not needed and its removal allowed to simplify (without change of behavior) definitions of jobs in prepcaches stage. 2023-06-23 02:29:21 +03:00
Maxim Ganetsky
b6f06a7e0c CI: switched to Debian 12 2023-06-22 16:31:48 +03:00
Maxim Ganetsky
a85903e67d CI: explicitly clear Qt bindings caches in a separate jobs if any files in their directories are changed
Cache actually contains all files from bindings directory (both source
and object ones) and is extracted after checkout, so it overwrites
checked out sources, and thus prevents correct cache update.

Note that sources should be kept in cache, as removing them will cause
bindings to be always recomiled (both in bindings and IDE compile jobs).
It takes long time and thus undesirable.

So now a separate cache clearing job is automatically run if (and only
if) any file in bindings is changed.

Such two-job architecture allows to automatically update cache and at
the same time populate it in case of its absence (e. g. in new merge
requests).

Note that simply doing full cache rebuild if any file in bindings is
changed is not enough as this job will not be triggered e. g. for a new
merge request (if it does not modify bindings) and will cause IDE
compile jobs for it to fail. GitLab CI currently does not support
conditions for triggering a job if a cache is missing.
2023-05-03 19:26:51 +03:00
Maxim Ganetsky
fe6b88d8da CI: added a comment to configuration 2022-12-22 01:52:48 +03:00
Maxim Ganetsky
57cc6997fc CI: added manual job for building docs (and emitting them as artifact) with FPDoc from stable FPC 2022-12-21 15:15:09 +00:00
Maxim Ganetsky
21e56937cf CI: added manual jobs for building docs (and emitting them as artifacts) with FPDoc from FPC main and fixes branches 2022-12-20 02:52:21 +03:00
Maxim Ganetsky
bff5a39d0b CI: run x86_64-qt6-stable job automatically 2022-11-13 18:54:37 +00:00
Maxim Ganetsky
81e0663d55 CI: run Qt6 cache updating job automatically, just like the one for Qt5 2022-11-13 01:09:50 +00:00
Maxim Ganetsky
8b24fca8a9 CI: call qmake6 when compiling Qt6 bindings 2022-11-12 03:44:35 +03:00
Maxim Ganetsky
d0e32a33bc CI: added x86_64-qt6-oldstable and x86_64-qt6-stable targets 2022-11-12 03:06:38 +03:00
Maxim Ganetsky
c381575e95 CI: allow image rebuilding job only in pipelines belonging to default branch 2022-08-24 01:29:15 +03:00
Maxim Ganetsky
8ff031fb66 CI: added x86_64-gtk2 and i386-win32 build jobs for FPC snapshots from 'fixes' and 'main' branches 2022-08-23 03:23:30 +03:00
Maxim Ganetsky
b804996b53 CI: support including snapshots of FPC (x86_64-linux) from 'fixes_3_2' and 'main' branches with i386-win32 and x86_64-win64 cross-compilers to our build environment image 2022-08-23 02:32:43 +03:00
Maxim Ganetsky
adaf3f4e19 CI: allow autorunning x86_64-gtk3-stable/oldstable jobs in scheduled pipelines and enable automatic building of x86_64-gtk3-stable 2022-08-20 01:16:37 +03:00
Maxim Ganetsky
68f1aa466a CI: added x86_64-gtk3 linux targets for stable and oldstable FPC (can be triggered only manually for now) 2022-08-20 01:03:23 +03:00
Maxim Ganetsky
48d4456dc3 CI: autorun all build jobs in scheduled pipeline 2022-08-19 02:59:57 +03:00
Maxim Ganetsky
e0fb044351 CI: let Qt5 bindings cache job always run and reuse its own cache, otherwise merge request pipelines will fail for Qt5 widgetset because of missing cache (previously cache updating job was not run if Qt5 bindings didn't have changes, even if the cache was empty). 2022-08-18 01:34:57 +03:00
Maxim Ganetsky
44a40cb0ed CI: enabled pipeline for merge requests and reduced duplication in Qt5 job definitions 2022-08-18 00:11:58 +03:00
Maxim Ganetsky
7676949e2e CI: automatically build x86_64-qt5-oldstable and i386-win32-stable in order to test oldstable 64-bit FPC 2022-08-17 01:32:57 +03:00
Maxim Ganetsky
bf656d73ee CI: enable automatic building of x86_64-qt5 (FPC 3.2.2) 2022-08-15 02:14:23 +03:00
Maxim Ganetsky
bcc142a91a CI: building Qt5Pas bindings moved to a separate stage/job with cached results 2022-08-15 01:44:22 +03:00
Maxim Ganetsky
de37de9b85 CI: re-enable building of target i386-win32 (FPC 3.2.0) now that issues are resolved 2022-08-13 01:09:04 +03:00
Maxim Ganetsky
69fd4ceb83 CI: temporarily disable automatic building of failing target i386-win32 (FPC 3.2.0) until the issue is resolved 2022-08-12 04:22:04 +03:00
Maxim Ganetsky
edc0363a39 CI: Enable automatic building of x86_64-gtk2 (FPC 3.2.2) and i386-win32 (FPC 3.2.0). This covers most cases (two widgetsets, two FPC versions, two bitnesses, two OS platforms). All other targets can be still run manually if desired.
The reason Qt widgetset was not enabled: high build times (24-25 min). Other targets take 4-5 min each and updating build environment image process takes 19 min.
2022-08-12 03:42:37 +03:00
Maxim Ganetsky
ff0ee07384 Rewritten CI configuration.
1. Added Dockerfile.buildenv to generate build environment image. It is based on Debian 11 x86_64 (contains GTK2, GTK3, Qt5 libraries and FPC (versions 3.2.0, 3.2.2) for x86_64-linux with x86_64-win64 and i386-win32 cross-compilers.

2. New CI configuration with jobs to build Lazarus with both FPC versions for x86_64-gtk2, x86_64-qt5, x86_64-win64, i386-win32. Also there is a job to update build environment image, which should be only run when Dockerfile.buildenv and/or FPC version constants in .gitlab-ci.yml file were updated.

All jobs were set to manual (don't trigger automatically) mode for now.
2022-08-12 03:26:45 +03:00
Maxim Ganetsky
a76721ce2e .gitlab-ci.yml: return to correct directory after installing compiler 2022-08-06 00:57:31 +00:00
Maxim Ganetsky
3cdf766f43 .gitlab-ci.yml: add diagnostic output 2022-08-06 00:47:33 +00:00
Maxim Ganetsky
d9a7f4f8a1 .gitlab-ci.yml: try 4 to fix job failure 2022-08-06 00:31:01 +00:00
Maxim Ganetsky
7cc5633856 .gitlab-ci.yml: add missing space character 2022-08-06 00:03:33 +00:00
Maxim Ganetsky
4d778a3487 .gitlab-ci.yml: try 3 to fix job failure 2022-08-05 23:57:59 +00:00
Maxim Ganetsky
3842d49c9f .gitlab-ci.yml: another try to fix job failure 2022-08-05 23:42:27 +00:00
Maxim Ganetsky
ff9be93e98 .gitlab-ci.yml: try to fix job failure by suppressing install.sh error output 2022-08-05 23:33:06 +00:00
Maxim Ganetsky
c4b04842e4 .gitlab-ci.yml: also install build-essential packages (needed for 'make') 2022-08-05 23:09:25 +00:00
Maxim Ganetsky
b1cab800e6 .gitlab-ci.yml: let apt-get work non-interactively 2022-08-05 22:50:49 +00:00
Maxim Ganetsky
14783ceac0 Created initial CI configuration (build on Linux/FPC3.2.2/GTK2) 2022-08-05 22:47:32 +00:00