-
Notifications
You must be signed in to change notification settings - Fork 0
Build and Deploy Automation
There are two components in DeDop software: back-end/cli and front-end. The back-end component can be used by itself. It comprises mostly Python codebase and can be found in dedop-core. The frontend component, however, has a dependency on the back-end component. It is basically a frontend desktop application that uses Electron with multiple web technologies behind it. The codes are written in Typescript.
The target operating system for DeDop Software Windows, OSX, and Linux. Due to this multi-platform nature of the software, we want to ensure that build and deployment automation is in place. For this, we have utilised Travis CI and Appveyor for the builds. Deployment is done after each build (for the back-end element) to Anaconda Cloud.
- back-end build Linux
- back-end build OSX
- back-end build Windows
- back-end conda upload Linux
- back-end conda upload OSX
- back-end conda upload Windows
- back-end installer upload Linux (FTP)
- back-end installer upload OSX (FTP)
- back-end installer upload Windows (FTP)
- front-end installer build Linux
- front-end installer build OSX
- front-end installer build Windows
- front-end installer upload Linux (FTP)
- front-end installer upload OSX (FTP)
- front-end installer upload Windows (FTP)
There are two options:
The back-end component is bundled into the front-end installer. The installation workflow is as follows:
- One click electron install
- Internally it will check if there is an existing DeDop back-end
- if not, install back-end
- Start back-end component
- Start front-end
- there is only one installer - offline installation is possible
- no need to download the extra component - faster installation
- installer is really fat (ca. 1GB) - takes longer to build and to download the installer, may also be a space issue in the Anaconda cloud
- back-end component installation has to run under the same privilege as the front-end installation
The back-end component is available as a separate component, so front-end installer will have purely front-end components.
- One click electron install
- Internally it will check if there is an existing DeDop back-end
- if not, download back-end installer
- after download is finished, install back-end
- if not successful (eg. due to permission issue), then exit front-end installation
- Start back-end component
- Start front-end
- front-end installer is purely for front-end component - smaller in size
- first time installation will need to download the back-end installer
Front-end component needs to know which back-end component has been installed, to ensure it has the right version of back-end. This is done by creating a directory structure under .dedop directory with the version information and the path to the back-end executable. The directory is structured as follows:
~/.dedop
|- workspaces
|- default
|- config.py
|- dedop-prefs.json
|- 0.5
|- dedop.info
|- 0.6
|- dedop.info
In dedop-prefs.json
file, which back-end version to be used can be configured.
Inside the dedop.info
file, the path to the dedop-webapi
of the corresponding version is stated.