Romp Documentation

Getting Started Guide

Romp Documentation Note - This documentation is incomplete.

As we continue working on Romp, the documentation will be updated.

Romp is a command-line tool, which means that you'll primarily be using the command-line in this guide. You can use a regular command prompt or PowerShell, but for example purposes we'll use the regular one.

Step 1: Install Romp

If you haven't already, you can just download and run the installer or follow the installation guide for more instructions.

Step 2: Create Package Working Directory

A romp package is a zip file that contains a directory of files. Before creating this package file, you'll want to create a working directory. It can be any directory you'd like, but for this guide we'll use c:\romp-tutorial\accounts-1.0.0 as our working directory.

 md c:\romp-tutorial\accounts-1.0.0
 cd c:\romp-tutorial\accounts-1.0.0

Within this directory, we'll want to create directory to store the package directory content. By the universal package specification, this directory name is package.

 md package

Step 3: Download Package Contents

A romp package typically contains content (i.e. the application files themselves) and configuration (i.e. infrastructure settings required to run the application).

For this tutorial, we'll be using a very simple web application called Accounts as the content.

You can download Accounts.zip here, and extract the contents of this zip file to c:\romp-tutorial\accounts-1.0.0\package. After you've done that, verify that the files are in the package directory.

 dir package

You should see something like this.

08/02/2017  08:33 PM    ‹DIR›          bin
08/02/2017  08:33 PM             1,631 Default.aspx
08/02/2017  08:33 PM    ‹DIR›          Resources
08/02/2017  08:33 PM             3,676 Site.Master
08/02/2017  08:33 PM               447 Web.config

Step 4: Create Variables File

notepad packageVariables.json

In notepad, enter the following:

{
    "WebsiteRoot": "C:\\Website\\Accounts"
}

Step 5: Create Installation Script

notepad install.otter

In notepad, enter the following:

Ensure-Directory $WebsiteRoot;

IIS::Ensure-AppPool Accounts
(
	Runtime: v4.0
);

IIS::Ensure-Site Accounts
(
    AppPool: Accounts,
    Path: $WebsiteRoot,
    Bindings: %(
        IPAddress: *, 
        Port: 1000, 
        Protocol: http
    )
);

Romp::Deploy-Contents $WebsiteRoot;

IIS::Start-AppPool Accounts;

IIS::Start-Site Accounts;

Step 6: Create Package Metadata File

notepad packageVariables.json

In notepad, enter the following:

{
    "group": "demos",
    "name": "accounts",
    "version": "1.0.0",
    "description": "Website for the Inedo Accounts demo."
}

Step 7: Build Package

Let's build the package.

 cd c:\romp-tutorial\accounts-1.0.0
romp pack accounts-1.0.0

Normally, you'd use the push command to publish to a package server, but we can skip that step.

Step 8: Inspect and Install Package

Usually, you'd use romp to install a package from a package server. But if you specify a file name instead, romp will simply install that package file and not attempt to download to the connected repository.

Before installing a package, it's always good to inspect it first.

 romp inspect accounts-1.0.0.upack

Name: demos/accounts
Version: 1.0.0

Variables:
 WebsiteRoot=C:\Websites\Accounts

install.otter: no errors

Just to be safe, you can run a simulated installation. Note that a package author could go out of their way to cause a side-effect on installation through an improperly-authored extension or script - this is why you should always inspect first.

 romp install accounts-1.0.0.upack --simulate
Extracting package...

Job #1 completed successfully.

Cleaning up...

Now let's install the package:

 romp install accounts-1.0.0.upack
Extracting package...

Job #2 completed successfully.

Cleaning up...

To view the full logs of the package installation, you can use the logs command:

 romp jobs logs

          ** (unnamed scope) **
 DEBUG: Skipping collection run; execute only.
 DEBUG: Cleaning up temporary files on Local Server...
  INFO: Collection run succeeded.
 DEBUG: Beginning execution run...

** (unnamed scope) **
 ** Ensure directory $WebsiteRoot  **
  DEBUG: Looking for C:\Websites\Accounts...
  DEBUG: Directory does not exist, creating...
   INFO: Directory C:\Websites\Accounts configured.

 ** Ensure Accounts Application Pool with .NET CLR v4.0 **
  DEBUG: Looking for Application Pool "Accounts"...
  DEBUG: Does not exist. Creating...
   INFO: Application Pool "Accounts" added.
  DEBUG: Reloading configuration...
  DEBUG: Applying configuration...
  DEBUG: Committing configuration...
   INFO: Application Pool "Accounts" configured.

 ** Ensure IIS Site: Accounts application pool Accounts; virtual directory path:
 $WebsiteRoot **
  DEBUG: Looking for Site "Accounts"...
  DEBUG: Does not exist. Creating...
   INFO: Site "Accounts" added.
  DEBUG: Reloading configuration...
  DEBUG: Applying configuration...
  DEBUG: Clearing bindings...
  DEBUG: Setting bindings...
  DEBUG: Committing configuration...
   INFO: Site "Accounts" configured.

 ** Deploy package to $WebsiteRoot **
  DEBUG: Deploying C:\Websites\Accounts\Default.aspx...
  DEBUG: Deploying C:\Websites\Accounts\Site.Master...
  DEBUG: Deploying C:\Websites\Accounts\Web.config...
  DEBUG: Deploying C:\Websites\Accounts\bin\Accounts.BLL.dll...
  DEBUG: Deploying C:\Websites\Accounts\bin\Accounts.Web.dll...
  DEBUG: Deploying C:\Websites\Accounts\Resources\Images\calc.jpg...
  DEBUG: Deploying C:\Websites\Accounts\Resources\Images\img01.jpg...
  DEBUG: Deploying C:\Websites\Accounts\Resources\Images\img07.jpg...
  DEBUG: Deploying C:\Websites\Accounts\Resources\Styles\default.css...
  DEBUG: Deploying C:\Websites\Accounts\Resources\Styles\main.css...

 ** Start Accounts App Pool **
   INFO: Application pool Accounts is already Started.

 ** Start Accounts IIS Site **
   INFO: Site Accounts is already Started.

 DEBUG: Cleaning up temporary files on Local Server...
 DEBUG: Execution run complete.
  INFO: Execution run succeeded.