Build Configuration Set Commands - project-ncl/pnc-cli GitHub Wiki

Below is a list of commands pertaining to Build Configuration Sets on PNC. A Build Configuration Set is a grouping of Build Configurations that should be associated. Many operations that can be performed on a single Build Configuration can be performed on the set as a whole.

#List of commands#

###add-build-configuration-to-set### Add a Build Configuration as a member of the specified existing Build Configuration Set.

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

  • Set ID (-sid / --set-id): ID of the Build Configuration Set to add the Build Configuration to.
  • Set Name (-sn / --set-name): Name of the Build Configuration Set to add the Build Configuration to.

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

  • Config ID (-cid / --config-id): ID of the Build Configuration to add to the Build Configuration Set.
  • Config Name (-cn / --config-name): Name of the Build Configuration to add to the Build Configuration Set.
[[thauser] [16:40:35] pnc-cli (master)]$pnc add-build-configuration-to-set -cid 1 -sn "Fabric Build Group"
[[thauser] [16:40:48] pnc-cli (master)]$pnc get-build-configuration-set -n "Fabric Build Group"
{'build_configuration_ids': [1, 4],
 'id': 2,
 'name': 'Fabric Build Group',
 'product_version_id': 1}

###build-set### Build all Build Configurations in the specified Build Configuration Set, according to their configured dependencies. Returns a Build Record Set JSON payload.

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

  • Set ID (-sid / --set-id): ID of the Build Configuration Set to build.
  • Set Name (-sn / --set-name): Name of the Build Configuration Set to build.
[[thauser] [16:57:01] pnc-cli (master)]$pnc build-set -i 2
{'build_configuration_ids': [1, 4],
 'id': 2,
 'name': 'Fabric Build Group',
 'product_version_id': 1}
[[thauser] [16:41:00] pnc-cli (master)]$pnc build-set -i 2
{'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-10',
 'user': {'email': '[email protected]',
          'first_name': 'Demo First Name',
          'id': 1,
          'last_name': 'Demo Last Name',
          'username': 'demo-user'},
 'user_id': 1,
 'username': 'demo-user'}
{'build_config_set_record_id': None,
 'build_configuration_audited': {'build_script': 'mvn clean deploy -DskipTests=true',
                                 'creation_time': None,
                                 'description': 'Test build for Fabric8',
                                 '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': 4,
                                 'id_rev': {'field_handler': None,
                                            'id': 4,
                                            'rev': 1},
                                 'last_modification_time': None,
                                 'name': 'io-fabric8-2.2-SNAPSHOT',
                                 'project': {'configuration_ids': [4],
                                             'description': 'Integration platform for working with Apache ActiveMQ, Camel, CXF and Karaf in the cloud',
                                             'id': 4,
                                             'issue_tracker_url': 'https://github.com/fabric8io/fabric8/issues',
                                             'license_id': None,
                                             'name': 'Fabric8',
                                             'project_url': 'https://github.com/fabric8io/fabric8'},
                                 'project_id': 4,
                                 'repositories': None,
                                 'rev': 1,
                                 'scm_mirror_repo_url': None,
                                 'scm_mirror_revision': None,
                                 'scm_repo_url': 'https://github.com/fabric8io/fabric8.git',
                                 'scm_revision': None},
 'build_configuration_id': 4,
 'build_configuration_name': None,
 'build_configuration_rev': None,
 'build_content_id': None,
 'build_environment_id': None,
 'end_time': None,
 'external_archive_id': None,
 'id': 4,
 'live_logs_uri': None,
 'product_milestone_id': None,
 'scm_repo_url': None,
 'scm_revision': None,
 'start_time': None,
 'status': 'NEW',
 'submit_time': '2016-05-10',
 'user': {'email': '[email protected]',
          'first_name': 'Demo First Name',
          'id': 1,
          'last_name': 'Demo Last Name',
          'username': 'demo-user'},
 'user_id': 1,
 'username': 'demo-user'}

###create-build-configuration-set### Create a new Build Configuration Set.

#####Required Parameters#####

  • Name: Name for the new Build Configuration Set.

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

  • Product Version ID (-pvi / --product-version-id): ID of a Product Version ID to associate this Build Configuration Set with.
  • Build Configuration IDs (-bcs / --build-configuration-ids): Space separated list of Build Configuration IDs that should be members of the initial Build Configuration Set.
[[thauser] [17:00:24] pnc-cli (master)]$pnc create-build-configuration-set "test set" -pvi 1 -bcs 1 2 3
{'build_configuration_ids': [1, 2, 3],
 'id': 3,
 'name': 'test set',
 'product_version_id': 1}

###delete-build-configuration-set### Remove a Build Configuration Set. If there are any existing Build Record Sets associated with the specified Set (the Set has been built at least once), deletion will not be possible.

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

  • ID (-i / --id): ID of the Build Configuration Set to delete.
  • Name (-n / --name): Name of the Build Configuration Set to delete.
[[thauser] [17:00:36] pnc-cli (master)]$pnc delete-build-configuration-set -n "test set"
[[thauser] [17:02:45] pnc-cli (master)]$pnc get-build-configuration-set -n "test set"
2016-05-10 17:02:55,758 ERROR There is no BuildConfigurationSet with name test set.

###get-build-configuration-set### Retrieve information about a specific Build Configuration Set.

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

  • ID (-i / --id): ID of the Build Configuration Set to retrieve.
  • Name (-n / --name): Name of the Build Configuration Set to retrieve.
[[thauser] [12:31:03] pnc-cli (master)]$pnc get-build-configuration-set -i 1
{'build_configuration_ids': [1, 2, 3],
 'id': 1,
 'name': 'Example Build Group 1',
 'product_version_id': 1}

###list-build-configuration-sets### List all Build Configuration Sets in PNC.

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

  • Page Size (-p / --page-size): Defines the amount of results to be returned. Default 200.
  • Sort (-s / --sort): RSQL Query that defines the ordering of the returned Sets
  • Query (-q): RSQL Query that defines which sets should be returned.
[[thauser] [12:39:38] pnc-cli (master)]$pnc list-build-configuration-sets  
{'build_configuration_ids': [1, 2, 3],
 'id': 1,
 'name': 'Example Build Group 1',
 'product_version_id': 1}
{'build_configuration_ids': [1, 4],
 'id': 2,
 'name': 'Fabric Build Group',
 'product_version_id': 1}
{'build_configuration_ids': [],
 'id': 4,
 'name': 'pnc-cli-test-PU5KBKJC1T-config-build-set-exec-test',
 'product_version_id': None}
{'build_configuration_ids': [],
 'id': 13,
 'name': 'pnc-cli-test-CNEHH6B741',
 'product_version_id': None}
{'build_configuration_ids': [],
 'id': 15,
 'name': 'pnc-cli-test-RRQHAUCRAL-running-builds-test',
 'product_version_id': None}
[[thauser] [12:39:44] pnc-cli (master)]$pnc list-build-configuration-sets -q id==2
{'build_configuration_ids': [1, 4],
 'id': 2,
 'name': 'Fabric Build Group',
 'product_version_id': 1}

Using query:

[[thauser] [12:40:09] pnc-cli (master)]$pnc list-build-configuration-sets -q name==pnc-cli-test-PU5KBKJC1T-config-build-set-exec-test
{'build_configuration_ids': [],
 'id': 4,
 'name': 'pnc-cli-test-PU5KBKJC1T-config-build-set-exec-test',
 'product_version_id': None}

###list-build-configurations-for-set### List all Build Configurations which are a member of a specific Build Configuration Set.

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

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

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

  • Page Size (-p / --page-size): Defines the amount of results to be returned. Default 200.
  • Sort (-s / --sort): RSQL Query that defines the ordering of the returned Configurations
  • Query (-q): RSQL Query that defines which Configurations should be returned.
[[thauser] [14:24:18] pnc-cli (master)]$pnc list-build-configurations-for-set -i 1
{'archived': False,
 'build_script': 'mvn clean deploy -DskipTests=true',
 'build_status': 'NONE',
 'creation_time': '2016-05-11',
 'dependency_ids': [],
 '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},
 'id': 1,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-05-11',
 'name': 'pnc-1.0.0.DR1',
 'product_version_id': 1,
 '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'}
{'archived': False,
 'build_script': 'mvn clean deploy -DskipTests=true',
 'build_status': 'NONE',
 'creation_time': '2016-05-11',
 'dependency_ids': [],
 'description': 'Test config for JBoss modules build master branch.',
 '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},
 'id': 2,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-05-11',
 'name': 'jboss-modules-1.5.0',
 'product_version_id': 1,
 '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'}
{'archived': False,
 'build_script': 'mvn clean deploy -DskipTests=true',
 'build_status': 'NONE',
 'creation_time': '2016-05-11',
 'dependency_ids': [2],
 'description': 'Test build for jboss java servlet api',
 '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},
 'id': 3,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-05-11',
 'name': 'jboss-servlet-spec-api-1.0.1',
 'product_version_id': 2,
 'project': {'configuration_ids': [3],
             'description': 'JavaEE Servlet Spec API',
             'id': 3,
             'issue_tracker_url': 'https://issues.jboss.org/browse/JBEE',
             'license_id': None,
             'name': 'JBoss JavaEE Servlet Spec API',
             'project_url': 'https://github.com/jboss/jboss-servlet-api_spec'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/jboss/jboss-servlet-api_spec.git',
 'scm_revision': None}

###list-build-records-for-set### List all Build Records for a specified Build Configuration Set.

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

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

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

  • Page Size (-p / --page-size): Defines the amount of results to be returned. Default 200.
  • Sort (-s / --sort): RSQL Query that defines the ordering of the returned Configurations
  • Query (-q): RSQL Query that defines which Configurations should be returned.
TODO

###remove-build-configuration-from-set### Remove a Build Configuration from membership of the specified Build Configuration Set.

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

  • Set ID (-sid / --set-id): ID of the Build Configuration Set to remove the Build Configuration from.
  • Name (-sn / --set-name): Name of the Build Configuration Set to remove the Build Configuration from.

This command also requires one of the following (but not both):

  • Config ID (-cid / --config-id): ID of the Build Configuration to remove.
  • Config name (-cn / --config-name): Name of the Build Configuration to remove.
[[thauser] [14:35:29] pnc-cli (master)]$pnc get-build-configuration-set -i 1
{'build_configuration_ids': [1, 2, 3],
 'id': 1,
 'name': 'Example Build Group 1',
 'product_version_id': 1}
[[thauser] [14:37:06] pnc-cli (master)]$pnc remove-build-configuration-from-set -sid 1 -cid 1
[[thauser] [14:37:18] pnc-cli (master)]$pnc get-build-configuration-set -i 1
{'build_configuration_ids': [2, 3],
 'id': 1,
 'name': 'Example Build Group 1',
 'product_version_id': 1}

###update-build-configuration-set### Update an existing Build Configuration Set with new information.

#####Required Parameters#####

  • ID (-i / --id): ID of the Build Configuration Set to update.

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

  • Name (-n /--name): Update Name for the Build Configuration Set.
  • Product Version ID (-pvi, --product-version-id): Updated Product Version ID to associate this Build Configuration Set with.
  • Build Configuration IDs (-bcs / --build-configuration-ids): Space separated list of Build Configuration IDs that should be the only members of this Set.
[[thauser] [15:15:22] pnc-cli (master)]$pnc create-build-configuration-set "testerino" -pvi 1 -bcs 1 2 3 
{'build_configuration_ids': [1, 2, 3],
 'id': 5,
 'name': 'testerino',
 'product_version_id': 1}
[[thauser] [15:15:35] pnc-cli (master)]$pnc update-build-configuration-set 5 -bcs 5
[[thauser] [15:15:37] pnc-cli (master)]$pnc get-build-configuration-set -i 5
{'build_configuration_ids': [5],
 'id': 5,
 'name': 'testerino',
 'product_version_id': 1}