`install_python_bindings.py` was not used by CI and scripts, except for `scripts/run-python-test.sh` which only used it to invoke `cargo`. Instead of using an additional script, run cargo directly. The documentation is updated to remove references to `install_python_bindings.py`. The section "Installing bindings from source" was in fact incorrect as it suggested running `tox --devenv` first and only then compiling the library with `install_python_bindings.py`. Now it explicitly says to run cargo first and then install the package without using `tox`. `tox` is still used for running the tests and setting up development environment.
Continuous Integration Scripts for Delta Chat
Continuous Integration, run through GitHub Actions and an own build machine.
Description of scripts
-
clippy.shrunscargo clippyfor all Rust code in the project. -
deny.shrunscargo denyfor all Rust code in the project. -
../.github/workflowscontains jobs run by GitHub Actions. -
remote_tests_python.shrsyncs to a build machine and runsrun-python-test.shremotely on the build machine. -
remote_tests_rust.shrsyncs to the build machine and runsrun-rust-test.shremotely on the build machine. -
run-doxygen.shgenerates C-docs which are then uploaded to https://c.delta.chat/ -
run_all.shbuilds Python wheels -
zig-rpc-server.shcompiles binaries ofdeltachat-rpc-serverusing Zig toolchain statically linked against musl libc. -
android-rpc-server.shcompiles binaries ofdeltachat-rpc-serverusing Android NDK.
Triggering runs on the build machine locally (fast!)
There is experimental support for triggering a remote Python or Rust test run from your local checkout/branch. You will need to be authorized to login to the build machine (ask your friendly sysadmin on #deltachat Libera Chat) to type:
scripts/manual_remote_tests.sh rust
scripts/manual_remote_tests.sh python
This will rsync your current checkout to the remote build machine (no need to commit before) and then run either rust or python tests.
coredeps Dockerfile
coredeps/Dockerfile specifies an image that contains all
of Delta Chat's core dependencies. It is used to
build python wheels (binary packages for Python).
You can build the docker images yourself locally to avoid the relatively large download:
cd scripts # where all CI things are
docker build -t deltachat/coredeps coredeps
Additionally, you can install qemu and build arm64 docker image on x86_64 machine: apt-get install qemu binfmt-support qemu-user-static docker build -t deltachat/coredeps-arm64 --build-arg BASEIMAGE=quay.io/pypa/manylinux2014_aarch64 coredeps