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 Testcwtch.im/cwtchA full exercise of peer-to-peer and group messaging
File Sharing Testcwtch.im/cwtchTests that file sharing and image downloading work as expected
Automated Download Testcwtch.im/cwtchTests that automated image downloading (e.g. profile pictures) work as expected
UI Integration Testcwtch.im/cwtch-uiA 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.dmgMacOS
cwtch-VERSION.tar.gzLinuxContains the code, libs, and assets in addition to install scripts for various devices
cwtch-VERSION.zipWindows
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