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.
Drone carries out a suite of automated tests at various stages of the release pipeline.
|Integration Test||cwtch.im/cwtch||A full exercise of peer-to-peer and group messaging|
|File Sharing Test||cwtch.im/cwtch||Tests that file sharing and image downloading work as expected|
|Automated Download Test||cwtch.im/cwtch||Tests that automated image downloading (e.g. profile pictures) work as expected|
|UI Integration Test||cwtch.im/cwtch-ui||A suite of Gherkin tests to exercise various UI flows like Creating / Deleting profiles and changing settings|
Drone produces the following build artifacts for all Cwtch autobindings builds.
|android/cwtch-sources.jar||Android||gomobile derived source code for the Android Cwtch library|
|android/cwtch.aar||Android||Android Cwtch library. Supports arm, arm64, and amd64.|
|linux/libCwtch.h||Linux||C header file|
|linux/libCwtch.so||Linux||x64 shared library|
|windows/libCwtch.h||Windows||C header file|
|windows/libCwtch.dll||Windows||x64 bit shared library|
|macos/libCwtch.arm64.dylib||MacOS||Arm64 shared library|
|macos/libCwtch.x64.dylib||MacOS||x64 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:
|cwtch-VERSION.apk||Android||Supports arm, arm64, and amd64. Can be sideloaded.|
|cwtch-VERSION.aab||Android||Android App Bundle for publishing to appstores|
|cwtch-VERSION.tar.gz||Linux||Contains the code, libs, and assets in addition to install scripts for various devices|
|cwtch-installer-VERSION.exe||Windows||NSIS powered installation wizard|
Nightly builds are regularly purged from the system
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.
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