Perforce Helix Installer

Welcome

Welcome to the home of the Perforce Helix Installer project.

Perforce Helix is a unified platform for collaborative development, version management, and protection of intellectual property. It consists of an integrated ecosystem of proven, enterprise-grade systems for versioning, collaboration and code review, continuous integration and delivery, and other aspects of a DevOps pipeline.

This Helix Installer is capable of quickly transforming a vanilla Linux machine -- virtual, bare metal, Docker container, etc. -- into a near-enterprise-grade deployment of several Helix Core Server components typically be present in a true enterprise installation.

Safety WARNING

Note that this software SHOULD NEVER EXIST on a Production Perforce server. The is intended to quickly tear down and rebuild a fresh Perforce server (e.g. for operating test suites). It should not exist on a machine containing real Perforce data.

It may be useful for doing an initial installation, e.g. to a cloud hosted environment. After the initial install, the reset_sdp.sh script should be removed.

Relationship to Server Deployment Package (SDP)

The installation uses the Server Deployment Package (SDP).

By default, the Helix Installer installs a specific version of the SDP, using a simple tar file from the downloads folder of the SDP project. This version is coded in a Helix Installer script, which is updated and release from time to time following successful integration testing with the given SDP version.

The Helix Installer can also clone the SDP project's main or dev branch to get the latest software available in the given branch. This is done using Helix native DVCS features (e.g. p4 clone) to clone the SDP mainline from the workshop, optionally overlaying the latest with a specified shelved changelist (see SDP Dev Branch Testing below). As a general rule, it is best to stick with the default 'main' branch unless Perforce Consulting recommends using the dev branch for some specific (generally temporary) reason.

Helix Installer Uses

The installation is suitable for:

Features

Instructions and Usage Example

The reset_sdp.sh script is the only script that should be downloaded. It downloads everything it needs, including other scripts and files from this Helix Installer package, executables from the Perforce FTP site, and the SDP from The Workshop (acquired using Helix native DVCS features ala p4 clone).

Once creating a fresh vanilla server machine for a supported platform, do this as the root user:

mkdir -p /hxdepots/reset
cd /hxdepots/reset
curl -k -s -O https://swarm.workshop.perforce.com/downloads/guest/perforce_software/helix-installer/main/src/reset_sdp.sh

chmod +x reset_sdp.sh

# Read the documentation ...
./reset_sdp.sh -man

./reset_sdp.sh 2>&1 | tee reset_sdp.log

A similar procedure works for Mac OSX, except that the standard Mac interface is used for creating the perforce user account.

SDP Dev Branch Testing

The Helix Installer can be used to test SDP changes shelved to the SDP dev branch in The Workshop. The following example illustrates testing a change in shelved changelist 23123:

su -
mkdir -p /hxdepots/reset
cd /hxdepots/reset
curl -k -s -O https://swarm.workshop.perforce.com/downloads/guest/perforce_software/helix-installer/main/src/reset_sdp.sh

./reset_sdp.sh -b dev,@23123 2>&1 | tee reset_sdp.CL23123.log

After the first test, an iterative test cycle may follow on the same shelved changelist. For each test iteration, the shelved changelist is first updated in the workspace from which the change was originally shelved, e.g. with a command like p4 shelve -f -c 23123.

Then a new test can be done by calling reset_sdp.sh with the same arguments. The script will re-install the SDP cleanly, and then re-apply the updated shelved changelist.

Helix Installer Release Notes

See the Helix Installer Release Notes.

Helix Installer Roadmap

Helix Installer 2019.2 (ETA Q2 2019)

The 2019.2 release is expected to add support for:

Helix Installer 2019.1

Helix Installer 2019.1 is available today. It installs the following Helix Components, all fully configured an integrated:

The 2019.1 version handles all aspects of installation. It does the following:

Following installation, it also does the following to be more convenient for demos, and also give a more production-like feel:

Test Suite

The Helix Installer Test Suite uses Vagrant, a command-line virtualization interface and Virtual Box virtualization technology. The test suite can be used for standalone demonstrations of the Helix Installer or the SDP.

Testing

To test, the Vagrant must be installed with the following plugins:

Create a workspace mapping files from //guest/perforce_software/helix-installer/... into a root directory, e.g. /pub/helix-installer, and sync the workspace. Then execute the test suite by running the following in a terminal session:

cd /pub/helix-installer/dev/test
vagrant up

On the first run, this may take a while (perhaps an hour?) to download all the necessary software, including a Linux operating system necessary to create a stand-alone virtual machine. This above been tested with Vagrant on Max OSX High Sierra, but should work on any platform where Vagrant and Virtual Box are supported, including Windows (though the path syntax will be different).

When the vagrant up command completes, access the VM and explore the environment. Here are some sample commands to get started with, continuing in the same terminal session:

vagrant ssh
sudo su - perforce
source /p4/common/bin/p4_vars 1
p4 info
p4 -p ssl:1666 info
p4 changes -t -m 10

perl -MP4 -e "print P4::Identify()"

echo '#!/p4/common/python/bin/python3' > /tmp/v.py
echo 'import P4' >> /tmp/v.py
echo 'print(P4.P4.identify())' >> /tmp/v.py
chmod +x /tmp/v.py
/tmp/v.py

exit
exit
vagrant suspent

Platform Support

Helix Installer 2018.2 supports:

Future releases may add support for other popular Linux distributions, including those using APT, e.g. Ubuntu. It may well work as-is presently on other YUM-based installations

Project Status

As of March 2019, this project is functional and has been actively used since April 2015. It has been actively maintained to keep pace with SDP changes.

Case Studies

Case Study: Sample Usage of Helix Installer in CBD Test Suite

The Component Based Development (CBD) system, another project in The Workshop, uses this Helix Installer as part of its automated test suite. In conjunction with Vagrant and Virtual Box, which build a vanilla VM from the ground up, the CBD Test Suite uses the Helix Installer to deploy a Perforce server, complete with Sample Depot test data set, plus Python and P4Python needed to test the CBD scripts.

Case Study: Sample Usage of Helix Installer in Battle School Workshop

A slightly modified Helix Installer is a key component of the Battle School Workshop. The Battle School Workshop Lab Engine quickly tears down and spins up a fresh, enterprise-style Helix installation -- and then breaks it in order to simulate real-world problems that students learn to identify and fix. The Battle School version of the Helix Installer (not available for public consumption) adds a simulated global topology with replicas and edge servers.

Support

This software is community supported. Evolution can also be driven by engaging Perforce Consulting. Please DO NOT contact Perforce Support for the Helix Installer, as it is not an officially supported product offering.

Contact Us

Please contact Perforce Consulting Services for more information.