Skip to content
This repository was archived by the owner on Nov 19, 2021. It is now read-only.

Build Configuration Commands

Tom Hauser edited this page May 10, 2016 · 21 revisions

Below is a list of commands pertaining to Build Configurations on PNC. In general, required parameters are positional, while optional parameters are specified using a flag.

#List of commands#

###add-dependency### Adds a Build Configuration as a dependency on another Build Configuration. Two distinct Build Configurations are required.

#####Required Parameters##### This command requires one of the following (but not both):

  • ID: ID of the Build Configuration to add a dependency to.
  • Name: Name of the Build Configuration to add a dependency to.

This command also requires one of the following:

  • Dependency ID (-di / --dependency-id): ID of the Build Configuration that should be a dependency.
  • Dependency Name (-dn / --dependency-name): Name of the Build Configuration that should be a dependency.
[[thauser] [14:42:14] ~]$pnc add-dependency -i 5 -di 4
[[thauser] [14:42:06] ~]$pnc get-build-configuration -i 5
{...
 'dependency_ids': [4],
...}

###build### Start a build using the provided Build Configuration. #####Required Parameters##### This command requires one of the following (but not both):

  • ID: ID of the Build Configuration to build.
  • Name: Name of the Build Configuration to build.
[[thauser] [16:13:30] ~]$pnc build -i 1
{'build_config_set_record_id': None,
 'build_configuration_audited': {'build_script': 'mvn clean deploy -DskipTests=true',
                                 'creation_time': None,
                                 'description': 'Test build config for project newcastle',
                                 'environment': {'attributes': {u'JDK': '1.7.0',
                                                                u'OS': 'Linux'},
                                                 'build_type': 'JAVA',
                                                 'description': 'Basic Java and Maven Environment',
                                                 'id': 1,
                                                 'image_id': '12345678',
                                                 'image_repository_url': None,
                                                 'name': 'Demo Environment 1',
                                                 'system_image_repository_url': None},
                                 'environment_id': 1,
                                 'id': 1,
                                 'id_rev': {'field_handler': None,
                                            'id': 1,
                                            'rev': 1},
                                 'last_modification_time': None,
                                 'name': 'pnc-1.0.0.DR1',
                                 'project': {'configuration_ids': [1],
                                             'description': 'Example Project for Newcastle Demo',
                                             'id': 1,
                                             'issue_tracker_url': None,
                                             'license_id': None,
                                             'name': 'Project Newcastle Demo Project 1',
                                             'project_url': 'https://github.com/project-ncl/pnc'},
                                 'project_id': 1,
                                 'repositories': None,
                                 'rev': 1,
                                 'scm_mirror_repo_url': None,
                                 'scm_mirror_revision': None,
                                 'scm_repo_url': 'https://github.com/project-ncl/pnc.git',
                                 'scm_revision': '*/v0.2'},
 'build_configuration_id': 1,
 'build_configuration_name': None,
 'build_configuration_rev': None,
 'build_content_id': None,
 'build_environment_id': None,
 'end_time': None,
 'external_archive_id': None,
 'id': 3,
 'live_logs_uri': None,
 'product_milestone_id': None,
 'scm_repo_url': None,
 'scm_revision': None,
 'start_time': None,
 'status': 'NEW',
 'submit_time': '2016-05-06',
 'user': {'email': 'demo-user@pnc.com',
          'first_name': 'Demo First Name',
          'id': 1,
          'last_name': 'Demo Last Name',
          'username': 'demo-user'},
 'user_id': 1,
 'username': 'demo-user'}

###create-build-configuration### Creates a new Build Configuration. There must already be a Project and Environment defined in order to create a new Build Configuration. #####Required Parameters#####

  • Build Configuration Name
  • Associated Project ID
  • Build environment ID

#####Optional Parameters#####

  • Description (-d / --description): String description of the Build Configuration
  • SCM Repository URL (-surl, --scm-repo-url): URL to the SCM for the code backing the Build Configuration
  • Source Revision (-srev, --scm-revision): Revision / tag / SHA to be used for the Build from SCM Repository URL
  • Build Script (-bs, --build-script): Script / Commands to be executed during the build process for this Build Configuration.
[[thauser] [14:43:22] ~]$pnc create-build-configuration 'test_build_configuration' 1 1 -d 'description here' -surl https://github.com/thauser/pnc-cli -srev '1.0.0' -bs 'mvn clean install'
{'build_script': 'mvn clean install',
 'build_status': 'UNKNOWN',
 'creation_time': '2016-03-02',
 'dependency_ids': [],
 'description': 'description here',
 'environment': {'build_type': 'JAVA',
                 'description': None,
                 'id': 1,
                 'image_id': None,
                 'image_repository_url': None,
                 'name': 'Demo Environment 1'},
 'id': 8,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-03-02',
 'name': 'test_build_configuration',
 'product_version_ids': [],
 'project': {'configuration_ids': [1, 8],
             'description': 'Example Project for Newcastle Demo',
             'id': 1,
             'issue_tracker_url': None,
             'license_id': None,
             'name': 'Project Newcastle Demo Project 1',
             'project_url': 'https://github.com/project-ncl/pnc'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/thauser/pnc-cli',
 'scm_revision': '1.0.0'}

###delete-build-configuration### Removes a Build Configuration from PNC.

#####Required Parameters##### This command requires one of the following:

  • Build Configuration ID (-i / --id): ID for the Build Configuration to delete.
  • Build Configuration Name (-n / --name): Name for the Build Configuration to delete.
[[thauser] [15:01:54] ~]$pnc delete-build-configuration -i 5
[[thauser] [15:02:05] ~]$pnc get-build-configuration -i 5
(404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Transfer-Encoding': 'chunked', 'Date': 'Wed, 02 Mar 2016 20:02:16 GMT', 'Content-Type': 'application/json', 'Server': 'Apache-Coyote/1.1'})
HTTP response body: {"content":null}

2016-03-02 15:02:16,239 ERROR No BuildConfiguration with ID 5 exists.

###get-build-configuration### Retrieves a JSON array of a given build configuration.

#####Required Parameters##### This command requires one of the following (but not both):

  • Build Configuration ID (-i / --id): ID for the Build Configuration to retrieve
  • Build Configuration Name (-n / --name): Name for the Build Configuration to retrieve

Using ID:

[[thauser] [14:43:45] ~]$pnc get-build-configuration -i 8
{'build_script': 'mvn clean install',
 'build_status': 'UNKNOWN',
 'creation_time': '2016-03-02',
 'dependency_ids': [],
 'description': 'description here',
 'environment': {'build_type': 'JAVA',
                 'description': None,
                 'id': 1,
                 'image_id': None,
                 'image_repository_url': None,
                 'name': 'Demo Environment 1'},
 'id': 8,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-03-02',
 'name': 'test_build_configuration',
 'product_version_ids': [],
 'project': {'configuration_ids': [1, 8],
             'description': 'Example Project for Newcastle Demo',
             'id': 1,
             'issue_tracker_url': None,
             'license_id': None,
             'name': 'Project Newcastle Demo Project 1',
             'project_url': 'https://github.com/project-ncl/pnc'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/thauser/pnc-cli',
 'scm_revision': '1.0.0'}

Using Name:

[[thauser] [14:46:50] ~]$pnc get-build-configuration -n 'test_build_configuration'
{'build_script': 'mvn clean install',
 'build_status': 'UNKNOWN',
 'creation_time': '2016-03-02',
 'dependency_ids': [],
 'description': 'description here',
 'environment': {'build_type': 'JAVA',
                 'description': None,
                 'id': 1,
                 'image_id': None,
                 'image_repository_url': None,
                 'name': 'Demo Environment 1'},
 'id': 8,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-03-02',
 'name': 'test_build_configuration',
 'product_version_ids': [],
 'project': {'configuration_ids': [1, 8],
             'description': 'Example Project for Newcastle Demo',
             'id': 1,
             'issue_tracker_url': None,
             'license_id': None,
             'name': 'Project Newcastle Demo Project 1',
             'project_url': 'https://github.com/project-ncl/pnc'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/thauser/pnc-cli',
 'scm_revision': '1.0.0'}

###list-build-configurations### Lists all Build Configurations that exist in the PNC instance.

#####Optional Parameters#####

  • Page size (-p / --page-size): The maximum amount of Build Configurations that will be returned per "page". Default 200.
  • Sort (-s / --sort): RSQL query to define the order of returned Build Configurations
  • Query (-q): RSQL query to filter returned results

Using page-size:

[[thauser] [15:04:21] ~]$pnc list-build-configurations --page-size 2
{'build_script': 'mvn clean deploy -DskipTests=true',
 'build_status': None,
 'creation_time': '2016-03-02',
 'dependency_ids': [],
 'description': 'Test build config for project newcastle',
 'environment': {'build_type': 'JAVA',
                 'description': None,
                 'id': 1,
                 'image_id': None,
                 'image_repository_url': None,
                 'name': 'Demo Environment 1'},
 'id': 1,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-03-02',
 'name': 'pnc-1.0.0.DR1',
 'product_version_ids': [],
 'project': {'configuration_ids': [1],
             'description': 'Example Project for Newcastle Demo',
             'id': 1,
             'issue_tracker_url': None,
             'license_id': None,
             'name': 'Project Newcastle Demo Project 1',
             'project_url': 'https://github.com/project-ncl/pnc'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/project-ncl/pnc.git',
 'scm_revision': '*/v0.2'}
{'build_script': 'mvn clean deploy -DskipTests=true',
 'build_status': None,
 'creation_time': '2016-03-02',
 'dependency_ids': [],
 'description': 'Test config for JBoss modules build master branch.',
 'environment': {'build_type': 'JAVA',
                 'description': None,
                 'id': 1,
                 'image_id': None,
                 'image_repository_url': None,
                 'name': 'Demo Environment 1'},
 'id': 2,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-03-02',
 'name': 'jboss-modules-1.5.0',
 'product_version_ids': [],
 'project': {'configuration_ids': [2, 8],
             'description': 'JBoss Modules Project',
             'id': 2,
             'issue_tracker_url': 'https://issues.jboss.org/browse/MODULES',
             'license_id': None,
             'name': 'JBoss Modules',
             'project_url': 'https://github.com/jboss-modules/jboss-modules'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/jboss-modules/jboss-modules.git',
 'scm_revision': '9e7115771a791feaa5be23b1255416197f2cda38'}

Using query:

[[thauser] [15:02:16] ~]$pnc list-build-configurations -q name==test_build_configuration
{'build_script': 'make',
 'build_status': 'UNKNOWN',
 'creation_time': '2016-03-02',
 'dependency_ids': [],
 'description': 'description here',
 'environment': {'build_type': 'JAVA',
                 'description': None,
                 'id': 1,
                 'image_id': None,
                 'image_repository_url': None,
                 'name': 'Demo Environment 1'},
 'id': 8,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-03-02',
 'name': 'test_build_configuration',
 'product_version_ids': [],
 'project': {'configuration_ids': [2, 8],
             'description': 'JBoss Modules Project',
             'id': 2,
             'issue_tracker_url': 'https://issues.jboss.org/browse/MODULES',
             'license_id': None,
             'name': 'JBoss Modules',
             'project_url': 'https://github.com/jboss-modules/jboss-modules'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/thauser/pnc-cli',
 'scm_revision': '123487'}

###list-build-configurations-for-product### Lists all Build Configurations associated with all of a given product's versions. #####Required Parameters##### This command requires one of the following:

  • Product ID (-i / --id): Product ID to list Build Configurations of.
  • Product Name (-n / --name): Product name to list Build Configurations of.

#####Optional Parameters#####

  • Page size (-p / --page-size): The maximum amount of Build Configurations that will be returned per "page". Default 200.
  • Sort (-s / --sort): RSQL query to define the order of returned Build Configurations
  • Query (-q): RSQL query to filter returned results
[[thauser] [15:20:44] ~]$pnc list-build-configurations-for-product -i 1
{'build_script': 'make',
 'build_status': 'UNKNOWN',
 'creation_time': '2016-03-02',
 'dependency_ids': [],
 'description': 'description here',
 'environment': {'build_type': 'JAVA',
                 'description': None,
                 'id': 1,
                 'image_id': None,
                 'image_repository_url': None,
                 'name': 'Demo Environment 1'},
 'id': 8,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-03-02',
 'name': 'test_build_configuration',
 'product_version_ids': [1],
 'project': {'configuration_ids': [2, 8],
             'description': 'JBoss Modules Project',
             'id': 2,
             'issue_tracker_url': 'https://issues.jboss.org/browse/MODULES',
             'license_id': None,
             'name': 'JBoss Modules',
             'project_url': 'https://github.com/jboss-modules/jboss-modules'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/thauser/pnc-cli',
 'scm_revision': '123487'}

###list-build-configurations-for-product-version### Lists all Build Configurations associated with a given product version. #####Required Parameters#####

  • Product ID: Product ID containing the Product Version to list Build Configurations of.
  • Product Version ID: Product Version ID to list Build Configurations of.

#####Optional Parameters#####

  • Page size (-p / --page-size): The maximum amount of Build Configurations that will be returned per "page". Default 200.
  • Sort (-s / --sort): RSQL query to define the order of returned Build Configurations
  • Query (-q): RSQL query to filter returned results
[[thauser] [15:22:39] ~]$pnc list-build-configurations-for-product-version 1 1
{'build_script': 'make',
 'build_status': 'UNKNOWN',
 'creation_time': '2016-03-02',
 'dependency_ids': [],
 'description': 'description here',
 'environment': {'build_type': 'JAVA',
                 'description': None,
                 'id': 1,
                 'image_id': None,
                 'image_repository_url': None,
                 'name': 'Demo Environment 1'},
 'id': 8,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-03-02',
 'name': 'test_build_configuration',
 'product_version_ids': [1],
 'project': {'configuration_ids': [2, 8],
             'description': 'JBoss Modules Project',
             'id': 2,
             'issue_tracker_url': 'https://issues.jboss.org/browse/MODULES',
             'license_id': None,
             'name': 'JBoss Modules',
             'project_url': 'https://github.com/jboss-modules/jboss-modules'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/thauser/pnc-cli',
 'scm_revision': '123487'}

###list-build-configurations-for-project### Lists all Build Configurations associated with a given project. #####Required Parameters##### This command requires one of the following:

  • Project ID (-i / --id): ID of the Project to list Build Configurations of.
  • Project name (-n / --name): Name of the Project to list Build Configurations of.

#####Optional Parameters#####

  • Page size (-p / --page-size): The maximum amount of Build Configurations that will be returned per "page". Default 200.
  • Sort (-s / --sort): RSQL query to define the order of returned Build Configurations
  • Query (-q): RSQL query to filter returned results
[[thauser] [15:24:48] ~]$pnc list-build-configurations-for-project -i 1
{'build_script': 'mvn clean deploy -DskipTests=true',
 'build_status': None,
 'creation_time': '2016-03-02',
 'dependency_ids': [],
 'description': 'Test build config for project newcastle',
 'environment': {'build_type': 'JAVA',
                 'description': None,
                 'id': 1,
                 'image_id': None,
                 'image_repository_url': None,
                 'name': 'Demo Environment 1'},
 'id': 1,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-03-02',
 'name': 'pnc-1.0.0.DR1',
 'product_version_ids': [],
 'project': {'configuration_ids': [1],
             'description': 'Example Project for Newcastle Demo',
             'id': 1,
             'issue_tracker_url': None,
             'license_id': None,
             'name': 'Project Newcastle Demo Project 1',
             'project_url': 'https://github.com/project-ncl/pnc'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/project-ncl/pnc.git',
 'scm_revision': '*/v0.2'}

###list-dependencies### List all BuildConfigurations that are a dependency of the given BuildConfiguration.

#####Required Parameters##### This command requires one of the following (but not both):

  • BuildConfiguration ID (-i / --id): ID of the BuildConfiguration to list dependencies of.
  • BuildConfiguration name (-n / --name): Name of the BuildConfiguration to list dependencies of.

#####Optional Parameters#####

  • Page size (-p / --page-size): The maximum amount of Build Configurations that will be returned per "page". Default 200.
  • Sort (-s / --sort): RSQL query to define the order of returned Build Configurations
  • Query (-q): RSQL query to filter returned results
[[thauser] [16:18:51] ~]$pnc list-dependencies -i 3
{'build_script': 'mvn clean deploy -DskipTests=true',
 'build_status': None,
 'creation_time': '2016-03-04',
 'dependency_ids': [],
 'description': 'Test config for JBoss modules build master branch.',
 'environment': {'build_type': 'JAVA',
                 'description': None,
                 'id': 1,
                 'image_id': None,
                 'image_repository_url': None,
                 'name': 'Demo Environment 1'},
 'id': 2,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-03-04',
 'name': 'jboss-modules-1.5.0',
 'product_version_ids': [],
 'project': {'configuration_ids': [2],
             'description': 'JBoss Modules Project',
             'id': 2,
             'issue_tracker_url': 'https://issues.jboss.org/browse/MODULES',
             'license_id': None,
             'name': 'JBoss Modules',
             'project_url': 'https://github.com/jboss-modules/jboss-modules'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/jboss-modules/jboss-modules.git',
 'scm_revision': '9e7115771a791feaa5be23b1255416197f2cda38'}

###remove-dependency### Removes a Build Configuration as a dependency from another Build Configuration. A Build Configuration with a dependency declared is required. #####Required Parameters##### This command requires one of the following (but not both):

  • ID: ID of the Build Configuration to remove a dependency from
  • Name: Name of the Build Configuration to remove a dependency from.

This command also requires one of the following:

  • Dependency ID (-di / --dependency-id): ID of the Build Configuration that should be removed as dependency.
  • Dependency Name (-dn / --dependency-name): Name of the Build Configuration that should be removed as a dependency.
[[thauser] [14:43:28] ~]$pnc remove-dependency -i 5 -di 4
[[thauser] [14:43:39] ~]$pnc get-build-configuration -i 5
{...
 'dependency_ids': [],
...}

###update-build-configuration### Updates an existing Build Configuration with the contents of new fields. An existing Build Configuration is required.

#####Required Parameters##### This command requires one of the following:

  • Build Configuration ID (-i / --id): ID of the Build Configuration to modify
  • Build Configuration Name (-n / --name): Name of the Build Configuration to modify

#####Optional Parameters#####

  • Project ID (-pid / --project): New Project ID to associate the Build Configuration with
  • Environment ID (-e / --environment): New Environment ID to use for the Build Configuration
  • Description (-d / --description): New description for the Build Configuration
  • SCM repository URL (-surl, --scm-url): New SCM URL for the sources of the Build Configuration
  • SCM Revision (-srev / --scm-revision): New SCM revision for the Build Configuration
  • Build Script (-bs / --build-script): New build script for the Build Configuration
[[thauser] [14:58:14] ~]$pnc update-build-configuration -i 8 -surl http://google.com -srev 123487 -bs 'make' -p 2
[[thauser] [14:58:23] ~]$pnc get-build-configuration -i 8
{'build_script': 'make',
 'build_status': 'UNKNOWN',
 'creation_time': '2016-03-02',
 'dependency_ids': [],
 'description': 'description here',
 'environment': {'build_type': 'JAVA',
                 'description': None,
                 'id': 1,
                 'image_id': None,
                 'image_repository_url': None,
                 'name': 'Demo Environment 1'},
 'id': 8,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-03-02',
 'name': 'test_build_configuration',
 'product_version_ids': [],
 'project': {'configuration_ids': [2, 8],
             'description': 'JBoss Modules Project',
             'id': 2,
             'issue_tracker_url': 'https://issues.jboss.org/browse/MODULES',
             'license_id': None,
             'name': 'JBoss Modules',
             'project_url': 'https://github.com/jboss-modules/jboss-modules'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/thauser/pnc-cli',
 'scm_revision': '123487'}

Clone this wiki locally