-
Notifications
You must be signed in to change notification settings - Fork 23
Build Configuration Commands
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
- build
- create-build-configuration
- delete-build-configuration
- get-build-configuration
- get-revision-of-build-configuration
- list-build-configurations
- list-build-configurations-for-product
- list-build-configurations-for-product-version
- list-build-configurations-for-product
- list-dependencies
- list-revisions-of-build-configuration
- remove-dependency
- update-build-configuration
###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'}