Build Tools

Integration with build tools supports these typical scenarios:

  • adding a Build to the list of Builds;
  • changing the status or description of a Build that was added earlier;
  • importing a report from an automated testing tool;

Updating Build Data

Building a product, testing it, and deploying it are so specific to each development company that any ready-made solution would immediately limit what developers can do. We do not ship ready-made integrations with build tools. We integrate through the REST API.

Popular free build tools: Jenkins, TeamCity.

Example command for publishing a Build (Linux):

curl -X POST -H "Devprom-Auth-Key: 974ccbfadd36dcc44fb8c1ssssbdb6fd" https://localhost/pm/project73/api/v1/builds -d '{"Caption":"","Description":"","BuildRevision":{"Version":""},"State":"inprogress"}'

The same command on Windows:

curl -X POST -H "Devprom-Auth-Key: 974ccbfadssss44fb8c1dda9bdb6fd" https://localhost/pm/project73/api/v1/builds -d "{\"Caption\":\"\",\"Description\":\"\",\"BuildRevision\":{\"Version\":\"\"},\"State\":\"inprogress\"}"

Example command for changing a Build status (Windows):

set /p APP_VERSION=<build\version.txt
set REST_JSON={\"Caption\":\"%APP_VERSION%\",\"State\":\"deployed\",\"Description\":\"https:\/\/localhost\"}
set REST_URL= http://localhost/pm/core/api/v1/builds
build\tools\curl -X POST -H "Devprom-Auth-Key: 49191a9f5773dd8fdaf37304ec1191" %REST_URL% -d "%REST_JSON%"
EXIT /B 0

In the example above, the full product version is stored in advance in the file build\version.txt.

Starting Builds Manually

Starting a Build manually from ALM is shown using the Jenkins integration.

Build and automated testing are handled by a job named "alm-deploy-test", which accepts the following parameters:

  • DBMS type (RDBMS)
  • Branch name in the version control system (BRANCH)

Create a custom action for the Repository entity named "Build" and add:

  • Parameters
    • DBMS as a link to a custom lookup that lets you choose the DBMS. Set the reference name to "RDBMS".
  • Webhook
    • URL - https://server-name/job/instance/buildWithParameters?BRANCH={{RootPath}},RDBMS={{RDBMS}}
    • Message — {}
    • HTTP headers — Authorization: Basic xxx
    • Method — POST

Parameters are passed in the Webhook URL (the ones in double curly braces):

  • RootPath — a Repository attribute that corresponds to the branch name;
  • RDBMS — the reference name of the custom action parameter that holds the DBMS for which the application is built.

The Repository context menu then includes "Build". When you select it, the system asks for the DBMS type and then calls the Webhook on the Jenkins side.

In the "Event log" you can track this custom action after it is invoked.