Skip to main content

Release and Packaging Process

Cwtch builds are automatically constructed via Drone. In order to be built the tasks must be approved by a project team member.

Automated Testing

Drone carries out a suite of automated tests at various stages of the release pipeline.

Test SuiteRepositoryNotes
Integration full exercise of peer-to-peer and group messaging
File Sharing that file sharing and image downloading work as expected
Automated Download that automated image downloading (e.g. profile pictures) work as expected
UI Integration suite of Gherkin tests to exercise various UI flows like Creating / Deleting profiles and changing settings

Cwtch Autobindings

Drone produces the following build artifacts for all Cwtch autobindings builds.

Build ArtifactPlatformNotes
android/cwtch-sources.jarAndroidgomobile derived source code for the Android Cwtch library
android/cwtch.aarAndroidAndroid Cwtch library. Supports arm, arm64, and amd64.
linux/libCwtch.hLinuxC header file
linux/libCwtch.soLinuxx64 shared library
windows/libCwtch.hWindowsC header file
windows/libCwtch.dllWindowsx64 bit shared library
macos/libCwtch.arm64.dylibMacOSArm64 shared library
macos/libCwtch.x64.dylibMacOSx64 shared library

UI Nightly Builds

We make unreleased versions of Cwtch available for testing as Cwtch Nightlies.

Each nightly build folder contains a collection of build artifacts e.g. (APK files for Android, installer executables for Android) in single convenient folder. A full list of build artifacts currently produced is as follows:

Build ArtifactPlatformNotes
cwtch-VERSION.apkAndroidSupports arm, arm64, and amd64. Can be sideloaded.
cwtch-VERSION.aabAndroidAndroid App Bundle for publishing to appstores
cwtch-VERSION.tar.gzLinuxContains the code, libs, and assets in addition to install scripts for various devices
cwtch-installer-VERSION.exeWindowsNSIS powered installation wizard

Nightly builds are regularly purged from the system

Official Releases

The Cwtch Team meets on a regular basis and reaches consensus based on nightly testing feedback and project roadmaps.

When the decision is made to cut a release build, a nightly version is built with a new git tag reflecting the release version e.g. v.1.12.0. The build artifacts are then copied to the Cwtch release website to a dedicated versioned folder.

Reproducible Builds

We use repliqate to provide reproducible build scripts for Cwtch.

We update the repliqate-scripts repository with scripts for all official releases. Currently only Cwtch bindings are reproducible