Continuous Integration Testing
-
Use Tile Dashboard CI to Test Your Tile
- The Tile Dashboard CI Test Process
- Prerequisites
- About Configuring a Tile on the Tile Dashboard
- Log in to the Tile Dashboard and Locate the Configuration Page
- Configure Your Tile Using the Properties Tab
- Configure Your Tile Using the Advanced - JSON Properties Tab
- Environment-Sensitive Values
- Specify UAA Users
- Save and Run
- About Test Configuration
- About Backing Services
- Set Up a Concourse Pipeline and Test Your Tile
Page last updated:
This topic describes how to do continuous integration (CI) testing on your tile.
There are two ways to do CI testing on your tile:
- Use the Tile Dashboard provided as a service by the Pivotal ISV team.
See Use Tile Dashboard CI to Test Your Tile below.
This is the method recommended by Pivotal. - Set up and use your own Concourse pipeline.
See Set Up a Concourse Pipeline and Test Your Tile below.
This method is more time consuming and not recommended for new partners or partners working on only one tile.
Use Tile Dashboard CI to Test Your Tile
With your tile in our Tile Dashboard CI testing system, we all win. You stay on top of changes to Pivotal Platform that may require changes in your tile. Our field representatives gain a clear understanding of your tile’s compatibility across Pivotal Platform versions, underlying IaaS, and different flavors of environments. This also relieves you from maintaining your own CI system, keeping up with latest Pivotal Platform versions, etc.
The Tile Dashboard CI is part of our Enterprise Readiness criteria which is used to inform the field of the quality and capabilities of your tile, so it is important to get your tile performing well. For an introduction to our readiness criteria, see Enterprise Readiness criteria.
The Tile Dashboard CI Test Process
The Tile Dashboard CI runs your tile through a series of steps, which include:
Downloading your tile from the Pivotal Network and checking hash integrity.
Scanning your tile for known issues or potential problems, like:
- Use of deprecated properties.
- Use of properties whose values/meanings have changed.
- Use of features that are no longer supported.
Configuring, installing, testing, and uninstalling your tile in several Pivotal Platform environments:
- A patch release of every supported Pivotal Application Service minor version.
- Every supported IaaS
- Environments with extra configuration, such as multiple availability zones and IPsec
The Tile Dashboard reports the results of each step. The results reported for each step include a general pass/fail status, the execution log, and output. If a step fails for a reason unrelated to a tile, such as a network glitch, you can retry that step from the Tile Dashboard CI.
Prerequisites
Before you use the Tile Dashboard to configure and test your tile, verify the following:
You have a Slack account on the PivotalPartners.slack.com organization. If you don’t have an account, contact the technical program management of the ISV team.
You belong to your company’s channel in the PivotalPartners.slack.com organization.
Your tile is uploaded to the Pivotal Network.
If you are uploading a… Then… first release contact the technical program management of the ISV team. subsequent release you can upload pre-releases to the Pivotal Network.
About Configuring a Tile on the Tile Dashboard
After your tile has been uploaded to the Pivotal Network, the Tile Dashboard starts to stage and scan it. For new tiles, this can take up to an hour.
After the stage and scan, you need to configure your tile on the Tile Dashboard. Configuration specfies how the tile is installed on the test environment.
Configuring your tile through the Tile Dashboard is equivalent to configuring the tile on Ops Manager after downloading it from the Pivotal Network.
There are two ways that you can configure the tile on the Tile Dashboard:
Method | Notes and Restrictions | For more information, see… |
---|---|---|
Through the Properties tab | This is a form view of the installation properties. | Configure Your Tile Using the Properties Tab below. |
Through the Advanced - JSON Properties tab | This is the list of properties displayed in JSON. | Configure Your Tile Using the Advanced - JSON Properties Tab below. |
Log in to the Tile Dashboard and Locate the Configuration Page
To log in to the Tile Dashboard and navigate to the configuration page, do the following:
Log in to your PivotalPartners.slack.com account.
Navigate to the Tile Dashboard URL: tile-dashboard.cfapps.io/static/index.html#/environments.
Click Tiles in the menu bar.
Click the row where your tile is listed.
If your tile has more than one version, click the one you want to configure.
Click Configure.
Configure Your Tile Using the Properties Tab
The Properties tab view allows you to configure installation properties through a form.
The form pulls properties from your tile.yml
file parsing the properties_blueprints
.
For general information about properties_blueprints
,
see Configuration Properties.
In the form, you can configure strings, integers, booleans, dropdowns, selectors, network addresses, ports, secrets, and simple credentials. To configure other types, such as nested collections, use the Advanced - JSON Properties tab. See Configure Your Tile Using the Advanced - JSON Properties Tab. For a complete list of property types, see Property and Template References.
To configure install properties for your tile using the Properties tab, do the following:
Complete the steps in Log in to the Tile Dashboard and Locate the Configuration Page above.
Click the Properties tab.
Review or specify the value for each property. If a property is required and is missing valid values, the field displays in red.
When no fields are red, click Save or Save and Run.
Configure Your Tile Using the Advanced - JSON Properties Tab
In the Advanced - JSON Properties tab, you configure install properties, specifying them in JSON, in the format used by the om tool. For more information about this format, see om configure-product.
To configure install properties for your tile using the Advanced - JSON Properties tab, do the following:
Complete the steps in Log in to the Tile Dashboard and Locate the Configuration Page above.
Click the Advanced - JSON Properties tab.
Enter values for all required properties. If a property is required, this is indicated by
"required": true
. For example:".properties.syslog_selector.enabled.address": { "value": "", "type": "network_address", "required": true },
After entering values for properties, delete the required attribute. This tells Tile Dashboard that this field is now provided. For example:
".properties.syslog_selector.enabled.address": { "value": "192.0.2.1", "type": "network_address", },
Click Save.
Environment-Sensitive Values
Some property values may need to vary between test environments. An example is availability zone names. For these environment-sensitive properties, we provide placeholder values that are replaced with an appropriate value for each test environment when the test is run. A description of these placeholder values appears on the Tile Configuration tabs for easy reference.
Specify UAA Users
Include a list of UAA users for testing your tile.
To specify the UAA users, do the following:
If you are not already on the configuration page, complete the steps in Log in to the Tile Dashboard and Locate the Configuration Page above.
At the bottom of the configuration page, click + to expand the box and view the fields.
Enter username, password, and groups for UAA user.
Save and Run
When the configuration is complete, the config icon shows green. At this point, you can test the tile on all the environments, by doing the following:
Complete the steps in Log in to the Tile Dashboard and Locate the Configuration Page above.
Click Save and Run.
This tests the tile on all the environments.
Click Tiles in the toolbar to return to the tiles view.
Follow the progress of the tests in the Tiles view.
Staged, scan, and config are the prerequisite jobs. They run in series. The rest are the environment jobs. They run in parallel. The environment jobs do not run until the config job has completed successfully.
About Test Configuration
After your tile is installed, Tile Dashboard runs any post-deploy errands your tile has defined, including tests. Ideally your tile includes tests that exercise all of its functionality. We have some ideas for expanding the Tile Dashboard testing capabilities; if you’re interested in other ways of defining tests, contact us on Pivotal Partners Slack.
About Backing Services
Your tile might require a backing service outside of the existing Pivotal Platform environment, for example, your tile might be a service broker to a SaaS offering.
You are responsible for maintaining the backing service in an environment that the Tile Dashboard can reach, that is, it must be internet-facing.
Set Up a Concourse Pipeline and Test Your Tile
The Tile Dashboard CI that Pivotal runs for its technical partnership program members uses the CI tool Concourse to make sure that partner products continue to work with every new release of the platform.
With more effort, you can also follow the pointers below to set up your own Concourse CI pipeline that integrates and tests your tile on your own deployment of the latest Pivotal Platform.
While you are of course also free to use any other CI system you are familiar with, Pivotal’s tools and documentation are built to make Concourse CI as easy as possible.
Set Up a Concourse Server
You need a Concourse server to host your pipeline.
If you partner with Pivotal, the Tile Dashboard CI servers can host your pipeline and provide S3 storage to exchange artifacts with your own servers.
If you choose to set up your own Concourse server, see the instructions Concourse: Setup & Operations.
Create a Concourse Pipeline for Your Tile
A typical CI pipeline for a tile consists of the following jobs:
- Build the tile
- Deploy it to Pivotal Platform
- Run a set of deployment tests to verify that it deployed and works correctly
- Remove it from Pivotal Platform
You describe this pipeline in a pipeline.yml
file that is then uploaded to the
Concourse server. Tile Generator contains a sample
pipeline that you can clone for your own tile. We are working on automating
the process of generating a pipeline template for you.
Set Up Pivotal Platform for Your CI Pipeline
Pivotal partners who have us host their pipeline have access to a pool of Pivotal Platform instances that are managed by us and are regularly updated with the latest (pre-)release versions of Pivotal Platform. If you set up your own concourse server, you have to target your pipeline at a Pivotal Platform instance you have setup.
Concourse has a resource type to manage a pool of resources that are shared between pipelines, which is what we use to serialize Pivotal Platform access between the partner pipelines that run on our concourse server.