Commit Graph

257 Commits

Author SHA1 Message Date
703554d556 Correctly strip newline (on Windows) 2024-06-07 15:38:46 +02:00
bea72574b0 Use python to update failure logs. 2024-06-07 15:36:58 +02:00
bdda21f7c7 Use paramiko module to upload archives. 2024-06-07 15:36:58 +02:00
1f4409d2ac Correctly get temp dir on Windows. 2024-06-07 15:36:58 +02:00
62dc698fad Build only libzim (and dependencies on Windows) 2024-06-07 15:36:54 +02:00
92673f357b Build on Windows with github-actions. 2024-06-07 15:29:55 +02:00
1534b85c56 Fix indentation of build_definition 2024-06-03 10:43:37 +02:00
683250ca9d Use manylinux container instead of bionic
Alignement of the table in build_definition will be fixed in later commit
to not mix functionnal and cosmetic changes in the same commit.
2024-06-03 10:42:49 +02:00
4b33546b77 Update actions relying on old Node.js16 2024-05-02 11:35:59 +02:00
89802f5e07 Publish deps archive on macos arm64 using mixed config. 2024-04-12 11:54:38 +02:00
a0baee815f Update to python 3.10 2024-04-12 11:52:49 +02:00
a93b3c8896 Remove the 2 in base_deps name 2024-04-08 16:53:17 +02:00
afda1f6673 Make CI common script use the correct build dir.
- Add an option to kiwix-build to get it.
2024-04-08 16:50:10 +02:00
0c0eac69c4 Introduce arch_name to name build dir base on arch name instead of config. 2024-04-08 16:50:03 +02:00
944eedcf56 Publish deps archive name using declared dependency_name.
Instead of compose it from `OS_NAME`, `COMPILE_CONFIG`.
2024-04-08 14:48:56 +02:00
c6936ebc72 Introduce new dependency_name in build_definition 2024-04-08 14:48:56 +02:00
696242a0b1 Introduce helper get_column_name() 2024-03-25 15:40:16 +01:00
c25a2e63e3 [CI/CD] Use config instead of target in the CI. 2024-02-05 18:03:12 +01:00
8c5bca05b7 Updated CI and builddef for renamed platform ; including new arm64 simulator 2023-12-05 07:04:53 +00:00
1a48bb509b Publish CI libkiwix's dependencies for iOS cross-compilation
See kiwix/libkiwix#1018
2023-11-20 14:17:50 +01:00
d59902f460 Add OS_NAME to docker trigger job 2023-11-17 15:01:32 +00:00
aa29f5029a Fixed docker workflow trigger
There is no such thing as a `LINUX_DOCKER_TRIGGER` platform target nor expected OS_NAME.
BuildDefinition expects the docker publish trigger to happen for native_static
2023-11-16 10:54:27 +00:00
1d70d1a0c4 Fixed incorrect py3 exception raising 2023-11-16 10:53:15 +00:00
a063b91349 Build CoreKiwix.xcframework
CoreKiwix.xcframework is the packaging format required by Kiwix apple (macOS/iOS) reader for libkiwix.
Naming will hopefully be revisited later (libkiwix.xcframework?)

This folder is a combination of all static archive (*.a): dependencies and libkiwix itself
for all apple-supported platforms: macOS x86_64, macOS arm64, iOS arm64 and iOS x86_64.
It also includes the headers.
Note: while iOS archs are separated in the framework, the macOS archs are bundled as a fat binary.

This thus adds:

- A new `apple_all_static` target that lists mentioned sub-platforms.
- A new `AppleXCFramework` virtual dependency and builder
  -  requires `libkiwix`
  - merges the archives into one per target
  - creates the fat binary for macOS
  - creates the xcframework
- `libkiwix_xcframework-VERSION.tar.gz` because platformname is xcframework
  - it only contains the xcframework but in libkiwix_xcframework-VERSION/lib folder
    Because with this virtual target, there are no other files
  - requires a new `xcframework` platform_name in builddef
- subplatforms deps and macOS/iOS _ok files to make_deps_archive

---

https://developer.apple.com/documentation/xcode/creating-a-multi-platform-binary-framework-bundle
2023-11-15 08:50:00 +00:00
6cfbd0c297 Use TMP_DIR (standard) instead of hard-coded /tmp
Allows overriding it
2023-11-15 08:40:22 +00:00
5b22821e61 Build zim-tools and kiwix-tools on macos-arm64 2023-11-09 11:52:08 +01:00
670bbb0417 removed iOSMacABI target as useless 2023-11-09 08:14:52 +00:00
a79b08f4c5 build on macos-13 with xcode 15.0.1 2023-11-09 08:14:52 +00:00
0a02353f28 Do not publish projects deps if we are in a branch.
Still publish the deps in the dep_previews directory in case we
would like to test it project's CI.
2023-11-08 10:43:27 +01:00
cf5dde88e2 Fix naming of musl archive for x86_64.
Fix openzim/libzim#820
2023-11-06 14:00:37 +01:00
fb6d6b8e25 Package ICU data with libzim/libkiwix. 2023-11-02 17:34:24 +01:00
b743487ba0 Use CI container image 2023-10-30 2023-10-30 20:07:22 +01:00
0f0f7c5003 Move CI container creation to kiwix/container-images 2023-10-29 11:57:59 +01:00
c2cd1331b7 Correctly set the docker image for x86-64_musl.
Use the same strategy that for `CI` workflow:
- By default use a target with `image_variant` to `focal`
- Add include for other image_variant.
2023-10-25 10:20:48 +02:00
3f908f429c Remove x86-64_musl_dyn from the CI.
This target fails on the CI because of conflict between the builded
libraries (lzma, libz) and native library.
As they are both for the same arch but with different libc, python tries
to load them and fails.

There is a real bug somewhere in our toolchain but we need to build for
x86_64 musl right now and this is done in `x86-64_musl_mixed` which pass.
So let's remove it for now.

(`x86-64_musl_dyn` fails with the docker image. It is ok with native
(fedora 38) system)
2023-10-24 10:53:31 +02:00
b57f83ed25 Move all toolchain installation in TOOLCHAIN directory.
This is a clearer install and it simplify the base_deps archive creation.
2023-10-24 10:53:31 +02:00
0ae6b0766b Build x86-64_musl in the CI 2023-10-23 10:19:12 +02:00
458aa97b36 Correctly build (and publish) dependencies for kiwix-desktop. 2023-07-31 17:44:36 +02:00
a6aa18cfcc Add missing env variable.
The variables are not used in the context of docker triggering.

I prefer set dummy variables instead of use a default value in the code
to be sure that the variable are defined when needed.
2023-07-29 13:33:37 +02:00
32db47d007 Add missing runs-on 2023-07-28 10:12:17 +02:00
45b459a03a Trigger docker workflow at the end of other jobs. 2023-07-27 15:20:00 +02:00
8070a750f5 Reorder few lines.
No functional change but it regroups lines with a platform_name.
2023-07-26 15:30:15 +02:00
46c663db09 Move the release platform name in the build definition.
Having the name of the archive define in common is splitting definition
in different files.

The purpose of build_definition is to centralize definition, so move them
there.
2023-07-26 15:28:50 +02:00
7e9a145bc5 Introduce D(ocker) build definition.
Partially fix #629
2023-07-26 15:09:13 +02:00
07e72ffba4 Extend the build definition with P(ublish) and S(ource)
This allow us to better control what we publish.
This fix #628
2023-07-26 15:04:37 +02:00
10e920ca00 Fix typos 2023-06-15 09:48:08 +02:00
7cdffbe22f Correctly add toolchains in deps archives. 2023-06-14 15:57:49 +02:00
1748f48197 Publish aarch64_musl. 2023-06-14 15:57:49 +02:00
64a686effe Build aarch64_musl on the CI. 2023-06-14 15:57:49 +02:00
d1b39dfb98 Correctly build native_mixed on bionic and focal.
If `native_mixed` is part of the original target, the "include" with the
`image_variant` will overwrite the combination.

If we remove `native_mixed`, both combinations are added.

See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategymatrixinclude
2023-06-13 12:38:36 +02:00