Continuous Delivery/Deployment
This guide will teach you how to setup Continuous Delivery for your cloud services.
Prerequisites
- A Windows 10 machine
- Phoesion Glow Blaze for Windows
What is Continuous Delivery?
Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, following a pipeline through a "production-like environment", without doing so manually.The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for continuous delivery.
Deployer
Introduction
The Phoesion Glow Deployer command-line tool can be used in your CI/CD pipeline for deploying a Project (.pgproject) or a Hologram (.pghologram) file to the Lighthouse.
Install
There are many options for getting/installing the Deployer.
See download instructions here
Run
For Windows you can run the Phoesion.Glow.Deployer.exe application. For Linux the installed apt-package can be run using the command phoesion.glow.deployer
Input sources
You can either supply the deployer with a .pgproject (Glow project file) or a .pghologram (Hologram file). When the input is a .pgproject (Glow project file) the deployer will compile it into a hologram for deployment (source files must be available). For a .pghologram (Hologram file) the deployer will need the binary files in the proper locations, unless it's a self-contained hologram that has all the needed files embedded into the .pghologram file.
Arguments
The syntax for the command-line arguments is
Syntax : Phoesion.Glow.Deployer.exe QuantumSpaceName Username InputFilePath ConnectionString [-LighthousePublicKey:<string>] [-LighthousePublicKeyFile:<file>] [-Build:Debug|Release|..] [-DeployConfigs:<file>] [-quiet] [-ignore_rollout] [-description:Text] [-deploymentVersion:ulong] [-useRelativeDir] [-useServiceNameAsRelativeDir] [-export_hologram:<filepath>] [-arch:string]
Parameters :
QuantumSpaceName - the name of the target quantum space for deployment
Username - the username to use for deployment.
It can either be simple the username (eg 'john') if using an ssh key agent (Pageant),
with password like 'john:123123' or an api-key like 'john:AAAssSjhv34...98f3Yd3'
InputFilePath - the filename of either a glow project file (.pgproject) or a hologram file (.pghologram)
ConnectionString - the hostname/ip of the lighthouse. (if needed you can specify a port with <host>:<port>, eg. "lighthouse.foompany.com:15000"
Optional Parameters :
LighthousePublicKey - the public key of Lighthouse to use for establishing a secure connection
LighthousePublicKeyFile - the path of the public key file to use for establishing a secure Lighthouse connection
Build - the build macro value that will be used for building and filepaths (eg. \"Debug\" or \"Release\"). Default value is Release
DeployConfigs - path to a json file with the deploy-time configurations
quiet - avoid printing non-error output
ignore_rollout - avoid waiting for full rollout and ignore rollout result(failures).
description - add hologram/deployment description.
deploymentVersion - specify a custom value for deployment version (default will auto-increment).
useRelativeDir - use relative dir for assembly discovery (based on hologram/project file path as root-level dir).
useServiceNameAsRelativeDir - use servicename as the relative dir for assembly discovery (based on hologram/project file path as root-level dir).
export_hologram - Export the hologram (self-contained) that was deployed.
arch - Comma-separated Architecture/Builds to deploy. Values are 'all', 'anycpu', 'win', 'linux'. Default is 'all'.
for example :
phoesion.glow.deployer "Services" "cicd:mypass" "project.pgproject" "services.company.com"