Matthieu Gautier
0c0eac69c4
Introduce arch_name to name build dir base on arch name instead of config.
2024-04-08 16:50:03 +02:00
Matthieu Gautier
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
Matthieu Gautier
c6936ebc72
Introduce new dependency_name in build_definition
2024-04-08 14:48:56 +02:00
Matthieu Gautier
696242a0b1
Introduce helper `get_column_name()`
2024-03-25 15:40:16 +01:00
Matthieu Gautier
c25a2e63e3
[CI/CD] Use config instead of target in the CI.
2024-02-05 18:03:12 +01:00
renaud gaudin
8c5bca05b7
Updated CI and builddef for renamed platform ; including new arm64 simulator
2023-12-05 07:04:53 +00:00
Matthieu Gautier
1a48bb509b
Publish CI libkiwix's dependencies for iOS cross-compilation
...
See kiwix/libkiwix#1018
2023-11-20 14:17:50 +01:00
renaud gaudin
d59902f460
Add OS_NAME to docker trigger job
2023-11-17 15:01:32 +00:00
renaud gaudin
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
renaud gaudin
1d70d1a0c4
Fixed incorrect py3 exception raising
2023-11-16 10:53:15 +00:00
renaud gaudin
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
renaud gaudin
6cfbd0c297
Use TMP_DIR (standard) instead of hard-coded /tmp
...
Allows overriding it
2023-11-15 08:40:22 +00:00
Matthieu Gautier
5b22821e61
Build zim-tools and kiwix-tools on macos-arm64
2023-11-09 11:52:08 +01:00
renaud gaudin
670bbb0417
removed iOSMacABI target as useless
2023-11-09 08:14:52 +00:00
renaud gaudin
a79b08f4c5
build on macos-13 with xcode 15.0.1
2023-11-09 08:14:52 +00:00
Matthieu Gautier
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
Matthieu Gautier
cf5dde88e2
Fix naming of musl archive for x86_64.
...
Fix openzim/libzim#820
2023-11-06 14:00:37 +01:00
Matthieu Gautier
fb6d6b8e25
Package ICU data with libzim/libkiwix.
2023-11-02 17:34:24 +01:00
Emmanuel Engelhart
b743487ba0
Use CI container image 2023-10-30
2023-10-30 20:07:22 +01:00
Emmanuel Engelhart
0f0f7c5003
Move CI container creation to kiwix/container-images
2023-10-29 11:57:59 +01:00
Matthieu Gautier
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
Matthieu Gautier
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
Matthieu Gautier
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
Matthieu Gautier
0ae6b0766b
Build x86-64_musl in the CI
2023-10-23 10:19:12 +02:00
Matthieu Gautier
458aa97b36
Correctly build (and publish) dependencies for kiwix-desktop.
2023-07-31 17:44:36 +02:00
Matthieu Gautier
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
Matthieu Gautier
32db47d007
Add missing `runs-on`
2023-07-28 10:12:17 +02:00
Matthieu Gautier
45b459a03a
Trigger docker workflow at the end of other jobs.
2023-07-27 15:20:00 +02:00
Matthieu Gautier
8070a750f5
Reorder few lines.
...
No functional change but it regroups lines with a platform_name.
2023-07-26 15:30:15 +02:00
Matthieu Gautier
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
Matthieu Gautier
7e9a145bc5
Introduce D(ocker) build definition.
...
Partially fix #629
2023-07-26 15:09:13 +02:00
Matthieu Gautier
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
Matthieu Gautier
10e920ca00
Fix typos
2023-06-15 09:48:08 +02:00
Matthieu Gautier
7cdffbe22f
Correctly add toolchains in deps archives.
2023-06-14 15:57:49 +02:00
Matthieu Gautier
1748f48197
Publish aarch64_musl.
2023-06-14 15:57:49 +02:00
Matthieu Gautier
64a686effe
Build aarch64_musl on the CI.
2023-06-14 15:57:49 +02:00
Matthieu Gautier
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
Matthieu Gautier
0f75a42498
Do not build libzim and libkiwix on macos arm64 static.
...
We should build them using mixed target only.
2023-06-12 14:46:06 +02:00
Matthieu Gautier
d6a2901ff8
Fix typos in build_release_nigthly
2023-06-08 10:15:38 +02:00
Matthieu Gautier
06d7a26cb4
Fix extraction of major version from version.
...
Taking the first char is ok only if major version is < 10.
2023-06-07 15:55:59 +02:00
Matthieu Gautier
4602ead6be
Fix packaging of libzim and libkiwix on macOS.
...
On MacOs, libraries are in `.dylib`, not `.so`.
Also package the `.pc` file.
2023-06-07 14:06:07 +02:00
Matthieu Gautier
6fe37ba0de
Rename osx to macos.
2023-06-02 16:09:22 +02:00
Matthieu Gautier
7b6ed275ed
Remove code for kiwix-desktop workaround.
...
As we don't use the workaround now, we can remove the code associated to
it.
It simplify our build definition.
2023-06-02 16:09:22 +02:00
Matthieu Gautier
8237adf950
Do not use a specific target `native_desktop`.
...
`native_desktop` is not a real target_platform. It is workaround to
specify "build only kiwix-desktop on native_dyn".
It was useful, when we need to build kiwix-desktop on a different build
env than the other project (because of packaging constraints).
Now we can build kiwix-desktop and all other projects on the same build
env, we can remove it and build kiwix-desktop with other `native_dyn`.
2023-06-02 16:09:22 +02:00
Matthieu Gautier
7db434ee6d
Use the common build definition to specify which deps build.
...
The build definition update follow what we build in the project's CI,
not what was defined by the replaced python code.
2023-06-02 16:09:22 +02:00
Matthieu Gautier
3defd4eba7
Be explicit about all our combinations.
2023-06-02 16:00:26 +02:00
Matthieu Gautier
e59e3698b2
Open build definition system to more complex build definition.
2023-06-02 15:58:53 +02:00
Matthieu Gautier
fc81551555
Remove unused import.
2023-06-02 15:58:02 +02:00
Matthieu Gautier
fd46c52473
Move the definition of what to build in a table.
...
This provide a better visual definition (and potential better explicit)
of the previous code base on `if/else`.
2023-06-02 15:58:00 +02:00
Matthieu Gautier
e751c1166c
Correctly package armv* toolchain in base dependency.
2023-05-23 08:58:17 +03:00
Matthieu Gautier
a302a597e2
Remove `lib_postfix` from CI.
...
This variable is never used.
2023-05-22 19:03:57 +02:00
Matthieu Gautier
c6ea16edd9
Build for armv6 and armv8 on the CI.
2023-05-22 19:03:57 +02:00
Emmanuel Engelhart
3cd20201c1
Use a scp cipher which goes faster
2023-05-21 14:31:33 +03:00
Emmanuel Engelhart
7db62390f1
We should build using macos11
2023-05-20 16:15:24 +02:00
Matthieu Gautier
af29fd5f2e
Publish dev preview in `dev_preview` subdirectory in tmp.kiwix.org/ci.
2023-05-16 15:26:24 +02:00
Matthieu Gautier
3e712db880
Fix publish of kiwix-desktop flatpak.
...
We cannot directly push on master. We have to create a pull request.
The CI is adapted to push a new branch. The PR has to be created manually.
2023-05-10 14:12:06 +02:00
Emmanuel Engelhart
a11b813f82
Use always fix version of macOS & Ubuntu
2023-05-04 15:06:52 +02:00
Matthieu Gautier
fd53141b9c
Use docker image version 38.
2023-04-28 10:00:11 +02:00
Matthieu Gautier
8f8ea01aec
Do not build binaries on macOS not _dyn.
...
Tools fails to compile for different reasons:
- Missing dependencies
- Use of invalid options (`-dead_strip_dylibs`/`-bitcode_bundle`)
2023-04-28 08:59:14 +02:00
Matthieu Gautier
02e2598056
Build zim-tools and kiwix-tools and macosOs_arm64.
2023-04-27 19:10:55 +02:00
Matthieu Gautier
ab14ce957b
Build kiwix-tools on macos (native)
2023-04-27 19:02:23 +02:00
Matthieu Gautier
fc3b446c76
Also build libzim mixed for aarch64 on bionic.
2023-04-26 16:54:35 +02:00
Matthieu Gautier
fffbd122c9
Make bionic CI create archive containing bionic in the name.
2023-04-26 16:54:35 +02:00
Matthieu Gautier
4aa613c8e6
Update CI build script
...
Update CI scripts to build only libzim on native_mixed if os name is
bionic.
2023-04-26 16:54:35 +02:00
Matthieu Gautier
7a0f490e00
Update CI workflows
...
Update CI to build on native_mixed bionic and build the bionic docker
image.
2023-04-26 15:21:17 +02:00
Matthieu Gautier
51925bc4da
Add the aarch64 toolchains to deps archive.
...
We need the aarch64 compiler to let's project build themselves.
2023-04-19 10:54:16 +02:00
Matthieu Gautier
65cf449c66
Update docker image to 37.
2023-04-18 10:34:08 +02:00
Matthieu Gautier
0919f4d3dd
[WIP] Use the docker image of our branch.
2023-04-12 16:53:32 +02:00
Matthieu Gautier
c9e9c5c070
Move all our CI to focal instead of bionic
...
Bionic is EOL.
2023-04-12 16:53:32 +02:00
Matthieu Gautier
4b8862a959
Use only one code to determine what to build.
...
As we build the "same"[*] things with build_project and build_release_nightly,
let's use the same code.
[*] We are not building the same things has we don't run the same runners
(not the same `PLATFORM_TARGET`) but for a given `PLATFORM_TARGET`, we
are building the same things.
2023-04-12 11:26:12 +02:00
Matthieu Gautier
b905e87280
Fix compilation on CI macOS
...
We don't want to compile zim-tools on macOS_arm64_dynamic.
2023-04-12 11:26:12 +02:00
Matthieu Gautier
9ee7567e80
Fix typos
2023-04-11 12:05:06 +02:00
Matthieu Gautier
ae3b1b6a25
Build zim-tools cross-compiling.
2023-04-11 12:05:06 +02:00
Matthieu Gautier
892e4bbffe
[CI] Upload `macOS_arm64_mixed` builds.
2023-03-30 17:37:11 +02:00
Matthieu Gautier
b218875d49
Rename `macOS_arm64` to `macOS_arm64_static`.
...
Publication code in `.github/scripts` expected that `foo_mixed` target
is tied to a `foo_static` target.
2023-03-30 14:18:53 +02:00
Matthieu Gautier
b4e0d60363
Build and publish libzim and libkiwix on macos_arm64.
2023-03-30 14:18:53 +02:00
Matthieu Gautier
c1d0ed4e4f
Correctly store the source toolchain for "aarch64"
2023-03-29 15:46:06 +02:00
Matthieu Gautier
695a3ef0c0
Correctly store the `static` compiled source when doing archive for mixed.
2023-03-29 15:46:06 +02:00
Matthieu Gautier
18c5d3bf5f
Publish nigthly and release of kiwix-tools on aarch64
2023-03-29 11:40:04 +02:00
Matthieu Gautier
8e61acbca2
Addapt CI to build armhf and aarch64.
...
- Aarch64 added
- libzim compilation on (armhf|aarch64)_mixed added.
2023-03-28 17:57:39 +02:00
renaud gaudin
7c02c6b778
Fixed triggering workflows on zim-tools and kiwix-tools
...
Both the fallback and the passed ref were targeting the master branch of those repositories.
This triggers the workflow on their main branch and sets the default target branch to main as all our repositories use it.
2023-03-28 07:58:41 +00:00
renaud gaudin
c5acad73b4
Prevent incorrectly setting DEV_BRANCH
...
DEV_BRANCH is used to change archive upload behavior.
We current code it was incorrectly considering being on a dev branch while on main one (main)
2023-03-28 07:56:37 +00:00
Matthieu Gautier
424d426a0e
Correctly package wasm archives.
...
With commit 6181d7bb
, we have changed where archives are written.
We must addapt our packaging script.
Fix #556
2023-03-20 19:32:41 +01:00
Emmanuel Engelhart
9f448f83de
Use fix versions for CI/CD
2023-03-19 15:24:33 +01:00
Emmanuel Engelhart
eae088e80f
Remove unecessary dependence to container workflow
2023-03-19 15:22:50 +01:00
Emmanuel Engelhart
f376e82aac
Use new container images v36
2023-03-16 10:42:07 +01:00
Emmanuel Engelhart
92951ee827
Fix container image tagging
2023-03-16 10:31:08 +01:00
Emmanuel Engelhart
245ca71692
Rename container workflow file
2023-03-16 09:34:22 +01:00
Emmanuel Engelhart
bd58d50051
Fix docker tag command
2023-03-16 09:33:56 +01:00
Emmanuel Engelhart
ea3a07e3c2
Fix container release
2023-03-16 09:05:03 +01:00
Emmanuel Engelhart
ad6de2897e
Better name for container workflow
2023-03-16 09:01:50 +01:00
Emmanuel Engelhart
534dee9c94
Use new Docker images for kiwix-build CI
2023-03-15 13:25:13 +01:00
Emmanuel Engelhart
f16f55fd07
Add container 'latest' tag
2023-03-15 13:25:13 +01:00
Emmanuel Engelhart
c1b8ff5d86
Better container image creation/upload workflow
2023-03-15 13:25:13 +01:00
Emmanuel Engelhart
b977392446
Remove CI container builds
2023-03-15 13:25:13 +01:00
Emmanuel Engelhart
b16cedc6be
Move ci_images
2023-03-15 13:25:13 +01:00
Emmanuel Engelhart
dd1a276d7a
Move CI container building to a dedicated CI workflow
2023-03-15 13:25:13 +01:00
Matthieu Gautier
7a23bb5b8b
Fix creation of base dependencies archive.
...
The `INSTALL_DIR` was added twice. It was not a issue as we then transform
the list into a set to remove duplicated.
But with `filter_install_dir` call only on one "add", the (textual)
entries are not duplicated and so, not removed. So the files where add
twice.
Now we correctly filter initial `INSTALL_DIR` and we remove the second add.
2023-03-14 17:17:30 +01:00
Matthieu Gautier
5c0d9d87c1
Remove `share/doc` and `share/man` from the deps archive.
...
They are useless and they use precious disk space.
Fix #567
2023-02-22 11:57:47 +01:00
Emmanuel Engelhart
3138c71b82
Update GitHub actions to latest version
2023-02-05 08:45:47 +01:00