{"id":20237585,"url":"https://github.com/qualisystems/sandbox-teamcity-plugin","last_synced_at":"2026-06-05T08:31:58.413Z","repository":{"id":96072482,"uuid":"65118829","full_name":"QualiSystems/Sandbox-TeamCIty-Plugin","owner":"QualiSystems","description":"Teamcity plugin for using CloudShell sandboxed during the build process","archived":false,"fork":false,"pushed_at":"2019-02-03T10:34:44.000Z","size":15459,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-14T01:11:57.420Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QualiSystems.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-07T06:15:50.000Z","updated_at":"2019-10-09T15:09:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"9b612fe1-e9be-402d-9366-5bfa05dbf7ce","html_url":"https://github.com/QualiSystems/Sandbox-TeamCIty-Plugin","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QualiSystems%2FSandbox-TeamCIty-Plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QualiSystems%2FSandbox-TeamCIty-Plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QualiSystems%2FSandbox-TeamCIty-Plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QualiSystems%2FSandbox-TeamCIty-Plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QualiSystems","download_url":"https://codeload.github.com/QualiSystems/Sandbox-TeamCIty-Plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241682045,"owners_count":20002431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T08:27:43.431Z","updated_at":"2026-06-05T08:31:58.393Z","avatar_url":"https://github.com/QualiSystems.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sandbox TeamCity Plugin\n\n### Introduction\nThe **CloudShell Sandbox TeamCity Plugin** provides an easy way to consume CloudShell sandboxes through TeamCity for a variety of use cases. The plugin allows you to create build configurations that create on demand sandboxes in CloudShell based on pre-defined blueprints. \n\n\n### Requirements\nThis plugin requires CloudShell 8.0 or later and TeamCity 10 or later.\nDepending on the plugin version, some features may require a specific version of CloudShell.\n\n### Installation\n1. Download the **CloudShell Sandbox TeamCity Plugin** from this repository's releases page.\n2. Upload the *qsSandbox.zip* file to the TeamCity *data/plugins/* folder (restart is needed).\n\n### Architecture\nThe **CloudShell Sandbox TeamCity Plugin** leverages CloudShell Sandbox API to perform operations in CloudShell. CloudShell Sandbox API comes out of the box with the CloudShell Suite installation and should be fully installed and configured for the plugin functionality. **Note that the TeamCity plugin only interacts with public blueprints.**\n\nWhen configuring the CloudShell Sandbox API, you will need to set the API port (82 by default). To see the port, open the **CloudShell Configuration** application and click **CloudShell Sandbox API**.\n\n### Configuration\nAfter installing the plugin, perform the following steps:\n\n1. Navigate to the TeamCity Administration page and open the **CloudShell Sandbox** tab.\n\n![Alt text](pics/Screenshot_4.png?raw=true)\n\n2. Enable the **CloudShell Sandbox** plugin.\n\n![Alt text](pics/Screenshot_8.png?raw=true)\n\n3. Set the CloudShell Sandbox API Host Address to the machine where CloudShell Sandbox API is installed.\nNote that this may be a different machine than the Quali Server.\n\n![Alt text](pics/Screenshot_6.png?raw=true)\n\n4. Specify the credentials (user, password, domain) of the CloudShell user you would like to use for CloudShell operations.\nWe recommend creating a new CloudShell admin user for TeamCity.\n\n5. To verify your configurations, click the **Test Connection**.\nTeamCity will interact with CloudShell to validate connectivity and credentials.\n\n![Alt text](pics/Screenshot_7.png?raw=true)\n\n### Usage\n##### CloudShell Build Steps\nThe plugin adds several new build steps to TeamCity to streamline interactions with CloudShell sandboxes.\n\n**CloudShell Sandbox** is a generic build step that contains CloudShell Actions you can execute. Each action contains several inputs. Currently, the **Start sandbox** and the **Stop Sandbox** actions are provided and we plan to support others in the future.\n\nThe **Start Sandbox** action creates a new CloudShell sandbox based on the selected public blueprint and restricts interaction with the sandbox while it is running Setup. This ensures the sandbox Setup process completes successfully without any outside interference. When the sandbox is active, the sandbox’s Id and additional information become available in *%SANDBOX_ID%*. This environment variable can be used in other steps in the build configuration.\n\n![Alt text](pics/Screenshot_1.png?raw=true)\n\n![Alt text](pics/Screenshot_2.png?raw=true)\n\n\nNote that the **Sandbox duration in minutes** field specifies the maximum duration of the sandbox. If the build does not end before the specified duration, CloudShell will tear down the sandbox.\n\nThe **Blueprint parameters** field allows you to specify user inputs, which can be used for resource selection (if the blueprint contains abstract resource requirements), as additional information to drive the provisioning, or as general information. For more information, see [CloudShell Help](http://help.quali.com/).\n\n\nTo end the sandbox that has been created in the build, use the **Stop Sandbox** step.\n![Alt text](pics/Screenshot_3.png?raw=true)\n\n##### CloudShell Build feature\nCloudShell sandboxes can also be consumed as a TeamCity build feature. Using sandboxes as a build feature enables easy interaction with the sandbox and suites a use case where only one sandbox is needed for this build configuration.\n\n**To use the CloudShell bulid feature:**\n1. Add The **CloudShell Sandbox** build feature from the build features list.\n2. Fill in all required fields.\n3. Click **Save**.\n\nFor example:\n![Alt text](pics/Screenshot_9.png?raw=true)\n\nWhen the sandbox is active, the sandbox’s Id and additional information become available in *%SANDBOX_ID%*.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqualisystems%2Fsandbox-teamcity-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqualisystems%2Fsandbox-teamcity-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqualisystems%2Fsandbox-teamcity-plugin/lists"}