{"_id":"569d4d550306a10d00ce995e","category":{"_id":"54cfba345ff7e617002bbd87","project":"54cf411f9d09bb0d00a17a1c","version":"54cf411f9d09bb0d00a17a1f","pages":["54d03f0e94f7980d0081b86f","54d03f57f530ca0d00053980"],"__v":2,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-02-02T17:56:04.441Z","from_sync":false,"order":5,"slug":"deploying-code","title":"Deploying Code"},"project":"54cf411f9d09bb0d00a17a1c","__v":298,"version":{"_id":"54cf411f9d09bb0d00a17a1f","project":"54cf411f9d09bb0d00a17a1c","__v":14,"createdAt":"2015-02-02T09:19:27.656Z","releaseDate":"2015-02-02T09:19:27.656Z","categories":["54cf41209d09bb0d00a17a20","54cfb99bbba1a023008741af","54cfb9a65ff7e617002bbd7f","54cfba03bba1a023008741b6","54cfba0ebba1a023008741b8","54cfba19bba1a023008741b9","54cfba29bba1a023008741bb","54cfba345ff7e617002bbd87","54cfba3ebba1a023008741bc","54cfba473995cf0d0006f6f0","54e371b18ef7552300409bf2","54e37aa5e887c50d005ef629","555a4e9b147f91190092d137","56b0e91802f4bc0d006ce254"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"parentDoc":null,"user":"5500000cd1ce260d00feacd2","updates":["569d7648ec29360d00f667c5","59793372c7f53e001bb2e248"],"next":{"pages":[],"description":""},"createdAt":"2016-01-18T20:38:45.555Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"[block:embed]\n{\n  \"html\": \"<iframe class=\\\"embedly-embed\\\" src=\\\"//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fb5oC9caFzM4%3Ffeature%3Doembed&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Db5oC9caFzM4&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fb5oC9caFzM4%2Fhqdefault.jpg&key=02466f963b9b4bb8845a05b53d3235d7&type=text%2Fhtml&schema=youtube\\\" width=\\\"854\\\" height=\\\"480\\\" scrolling=\\\"no\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\",\n  \"url\": \"https://www.youtube.com/watch?v=b5oC9caFzM4\",\n  \"title\": \"Cloud9 for Google Cloud Platform\",\n  \"favicon\": \"https://s.ytimg.com/yts/img/favicon-vflz7uhzw.ico\",\n  \"image\": \"https://i.ytimg.com/vi/b5oC9caFzM4/hqdefault.jpg\"\n}\n[/block]\nIf you're new to Google Cloud Platform, read the [Overview](https://cloud.google.com/docs/overview/index).\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"\",\n  \"body\": \"At the moment, this feature is in Beta and only a few well-known project configurations can be run and deployed using the graphical user interface. The IDE will scan your project and determine automatically if it is compatible. This release of Cloud9 supports the following project configurations:\\n\\n```\\njava  Java Web Application\\n      App Engine Java Managed VM platform\\n      Maven build system\\n```\\n\\nOver the next few weeks, we are adding support for other configurations and programming languages. If your favorite project type is not yet available, try one of the supported tutorial projects or stay tuned for more info.\\n\\nIf you are familiar with the terminal, you can use the [`gcloud` command-line utility](https://cloud.google.com/sdk/gcloud/) which comes pre-installed on your workspace and is configured to access projects and resources without having to perform additional setup or authorization.\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Before you begin\"\n}\n[/block]\n- Create a project in the **[Google Cloud Platform Console](https://console.cloud.google.com/)**.\n\n  Projects enable you to manage all Google Cloud Platform resources for your app, including deployment, access control, billing, and services.\n\n  1. Open the **[Cloud Platform Console](https://console.cloud.google.com/)**.\n  2. In the drop-down menu at the top, select **Create Project**.\n  3. Click **Show advanced options**. Under **App Engine location**, select a United States location.\n  4. Give your project a name.\n  5. Note the **Project ID** because it will be used for commands and in configurations.\n\n\n- **[Enable billing](https://console.cloud.google.com/project/_/settings)** for your project.\n\n  Enabling billing allows the application to consume billable resources such as running instances and storing data.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Set up your workspace\"\n}\n[/block]\n- **[Connect your Google account](https://c9.io/auth/google)** to your Cloud9 account.\n\n  Connecting your account allows access to your Cloud Platform resources from inside the IDE. If you don't have a Cloud9 account yet it will be created on the fly.\n\n- **[Create a workspace](https://c9.io/new/google)** for your Cloud Platform project.\n\n  Workspaces contain the code and tools that you need to work on your project. The workspace is set up to store source code remotely on [Cloud Source Repositories](https://cloud.google.com/tools/cloud-repositories/docs/) and you can manage your project resources using the [Google Cloud SDK](https://cloud.google.com/sdk/) which comes pre-installed on the workspace's virtual machine.\n\n  1. Under **Select a project**, select the Google Cloud Platform project you want to work on.\n  2. Choose if you want your workspace to be **Private** or **Public**. Public workspaces are free but can be accessed by anybody on the internet.\n  3. Click **Create workspace**.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Make a Java guestbook app\"\n}\n[/block]\nDeploy a basic Java Web Application from Cloud9 to a [Google App Engine Managed VM](https://cloud.google.com/appengine/docs/managed-vms/). This tutorial shows you how to download the app and run a local web server to preview it on your workspace's virtual machine. You can then modify the code and see how the preview is recompiled and reloaded automatically. After you complete customizing your code, you will deploy the application to Google Cloud Platform and see the app run in the cloud.\n\n- _Run the project_ to install the sample app and start the preview server.\n\n  1. In the menu bar at the top, click **Run Project**.\n  2. A terminal window with the output of the runner script opens at the bottom.\n    You can resize it to make it easier to read.\n  3. The script scans your workspace directory to determine that it is empty and starts the installer.\n  4. When prompted to **Choose a project**, type **`1`** and press enter.\n  5. The script downloads the code, compiles it, and starts the server.\n  6. When the message **Your code is running at https://...** appears, click the link.\n\n\n- _Deploy_ the app to Google Cloud Platform.\n\n  1. In the menu bar at the top, click **Deploy**.\n  2. A terminal window with the output of the deploy script opens.\n  3. Wait for the deployment to complete. This process might take a few minutes.\n  4. When the message **Your app has been deployed to https://...** appears, click the link.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/CHu2W0X8TnGYCQErmGiL_Image%202016-01-22%20at%2012.25.36%20pm.png\",\n        \"Image%202016-01-22%20at%2012.25.36%20pm.png\",\n        \"2880\",\n        \"1744\",\n        \"#f65126\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n### Understanding the code\n\nThe code in this sample app uses Java Servlets with JSP templates. To learn more about the function and location of files in this project, read the [App Engine Java Guestbook](https://cloud.google.com/appengine/docs/java/gettingstarted/ui_and_code) documentation.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Google App Engine has two runtime environments: the [sandboxed runtime](https://cloud.google.com/appengine/features/#languages_and_runtimes) that supports Python, Go, PHP, and Java, and the [Managed VMs](https://cloud.google.com/appengine/docs/managed-vms/) runtime.\\n\\nThese tutorials focus only on the Managed VMs runtime. Applications that run on managed VMs can customize their runtime environments and are not subject to the restrictions imposed by the sandboxed runtimes.\"\n}\n[/block]\n### Java environment and tools\n\nIn addition to the tools default that are available on Cloud9 workspaces by default, the workspace for Google Cloud Platform has a number of additional tools pre-installed.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Tool\",\n    \"h-1\": \"Version\",\n    \"h-2\": \"Location\",\n    \"0-0\": \"Java\",\n    \"0-1\": \"Oracle Java 8 JDK\",\n    \"0-2\": \"`/usr/lib/jvm/java-8-oracle/`\",\n    \"1-0\": \"Maven\",\n    \"1-1\": \"3.3\",\n    \"2-0\": \"Google Cloud SDK\",\n    \"1-2\": \"`/usr/bin/mvn`\",\n    \"2-1\": \"91.0.1\",\n    \"2-2\": \"`/usr/local/share/google/google-cloud-sdk/`\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Using your workspace\"\n}\n[/block]\n### Using the `gcloud` utility and Google Cloud SDK\n\nThe [Google Cloud SDK](https://cloud.google.com/sdk/) comes pre-installed on your workspace's virtual machine and is automatically configured to access your project on Google Cloud Platform. The [`gcloud` command-line utility](https://cloud.google.com/sdk/gcloud/) is available in the terminal window and runs with the same credentials as your connected Google account. You don't need to perform additional authorization steps.\n\nView the Cloud SDK configuration properties to see the project and account that were configured automatically:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ gcloud config list core/\\n[core]\\naccount = account:::at:::example.org\\nproject = extended-arcana-119717\",\n      \"language\": \"text\",\n      \"name\": \"Cloud9 automatically initializes Google Cloud SDK\"\n    }\n  ]\n}\n[/block]\nYou can manage resources like virtual machine instances from the terminal window:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ gcloud compute instances list\\nNAME                             ZONE          MACHINE_TYPE\\ngae-default-20151226t090419-anh0 us-central1-c n1-standard-1 ...\\ngae-default-20160118t233116-p70n us-central1-b n1-standard-1 ...\",\n      \"language\": \"text\",\n      \"name\": \"List virtual machine instances with the gcloud tool\"\n    }\n  ]\n}\n[/block]\n`gsutil` allows you to access [Google Cloud Storage](https://cloud.google.com/storage/docs/overview) from the command-line:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ gsutil ls gs://uspto-pair/applications/0800401*\\ngs://uspto-pair/applications/08004010.zip\\ngs://uspto-pair/applications/08004011.zip\\n...\",\n      \"language\": \"text\",\n      \"name\": \"List contents of a Google Cloud Storage bucket\"\n    }\n  ]\n}\n[/block]\nTo learn more about using these tools to create and manage your Google Cloud Platform resources, read the [gcloud Tool Guide](https://cloud.google.com/sdk/gcloud/), [gsutil Tool Guide](https://cloud.google.com/storage/docs/gsutil), and [Accessing Services with gcloud](https://cloud.google.com/sdk/cloudplatform). To discover commands, you can tab-autocomplete `gcloud` subcommands, and also many entities such as your instances and zones.\n\n### Using the Cloud Source Repository\n\nEach project on Google Cloud Platform has an associated [Cloud Source Repository](https://cloud.google.com/tools/cloud-repositories/docs/) that can be accessed using Git. You can use this repository for collaborative development and, if you are using the [Google Cloud Debugger](https://cloud.google.com/tools/cloud-debugger), to view debugging information alongside your code  in the Cloud Platform Console.\n\nThe first time you open your workspace, Cloud9 adds the Cloud Source Repository of your project as a Git remote to your workspace folder and clones it. The remote is named `origin`. A system-wide credential helper script provides the information needed by Git to connect securely to the repository using your Google account credentials.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"% git clone https://source.developers.google.com/p/extended-arcana-119717/r/default workspace\\nInitialized empty Git repository in /home/ubuntu/workspace/.git/\\nFrom https://source.developers.google.com/p/extended-arcana-119717/r/default\\n * [new branch]      master     -> origin/master\\nBranch master set up to track remote branch master from origin.\",\n      \"language\": \"text\",\n      \"name\": \"Cloud9 automatically adds the Cloud Source Repository as a Git remote\"\n    }\n  ]\n}\n[/block]\nWhen you modify files on your workspace, commit the changes and push them to the Cloud Source Repository:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ git add .\\n$ git commit -m 'local changes'\\n$ git push origin master\\nTo https://source.developers.google.com/p/extended-arcana-119717/r/default\\n   4cc1d7f..018c925  master -> master\",\n      \"language\": \"text\",\n      \"name\": \"Push changes to the Cloud Source Repository\"\n    }\n  ]\n}\n[/block]\nTo update files on your workspace, pull changes from the Cloud Source Repository:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ git pull origin master\\nFrom https://source.developers.google.com/p/extended-arcana-119717/r/default\\n * branch            master     -> FETCH_HEAD\\nAlready up-to-date.\",\n      \"language\": \"text\",\n      \"name\": \"Pull changes from the Cloud Source Repository\"\n    }\n  ]\n}\n[/block]\n### Accessing the Cloud Platform Console\n<img src=\"https://files.readme.io/3OBF4UJRRECPRgsPP2tC_open_cloud_console.gif\" width=\"300\" style=\"float:right; margin-left: 10px;\"/>\n\nUse a shortcut in the project menu to open the [Google Cloud Platform Console](https://console.cloud.google.com/) when you work inside the IDE.\n\n  1. In the top menu bar, click on your **project name**.\n  2. Select **Developers Console**.\n\n<br style=\"clear: both\"/>\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Known Issues\"\n}\n[/block]\nA number of bugs are known issues during the beta and we are actively working to resolve them.\n\nThe Cloud9 extensions which implement GCP connectivity are fixed to the version they had when the workspaces was created. They are not updated automatically. To get never versions, delete your workspace and create a new one.\n \nThis release on Cloud9 only supports a few well-known project layouts. To run a project it has to be: Java Web Application with JSP, Servlets; Maven; Java App Engine Managed VM. The system detects `pom.xml`, `web.xml` and other files for validation.\n\nIf the cloud repository is empty, `git` throws an error during initial workspace cloning. This error can be ignored.\n\nThe output window for __deploy__ has no stop button and its output can become detached.\n\nAttempting to deploy a new project can lead to an error if the project is not connected to a Billing Account. This error message is combined with others and hard to find. Cloud9 should run a pre-check and warn the user if the current project is not configured for Billing.\n\nLive preview frame should reload automatically by monitoring the terminal for messages that indicate the watcher has triggered\n\n<div style=\"text-align: center;\"><a target=\"_blank\" href=\"https://community.c9.io/t/documentation-cloud9-for-google-cloud-platform/1666?utm_source=docs.c9.io&utm_medium=article&utm_campaign=Docs%2BFeedback\" class=\"button info solid\">Submit feedback or questions about this page</a></div>","excerpt":"This step-by-step guide shows you how to code your project in the Cloud9 browser IDE and get it deployed and running on Google Cloud Platform. You will learn how to connect your accounts, set up your workspace, run a dev server to preview your app, and deploy your finished app to an App Engine Managed VM.","slug":"google","type":"basic","title":"Cloud9 for Google Cloud Platform"}

Cloud9 for Google Cloud Platform

This step-by-step guide shows you how to code your project in the Cloud9 browser IDE and get it deployed and running on Google Cloud Platform. You will learn how to connect your accounts, set up your workspace, run a dev server to preview your app, and deploy your finished app to an App Engine Managed VM.

[block:embed] { "html": "<iframe class=\"embedly-embed\" src=\"//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fb5oC9caFzM4%3Ffeature%3Doembed&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Db5oC9caFzM4&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fb5oC9caFzM4%2Fhqdefault.jpg&key=02466f963b9b4bb8845a05b53d3235d7&type=text%2Fhtml&schema=youtube\" width=\"854\" height=\"480\" scrolling=\"no\" frameborder=\"0\" allowfullscreen></iframe>", "url": "https://www.youtube.com/watch?v=b5oC9caFzM4", "title": "Cloud9 for Google Cloud Platform", "favicon": "https://s.ytimg.com/yts/img/favicon-vflz7uhzw.ico", "image": "https://i.ytimg.com/vi/b5oC9caFzM4/hqdefault.jpg" } [/block] If you're new to Google Cloud Platform, read the [Overview](https://cloud.google.com/docs/overview/index). [block:callout] { "type": "warning", "title": "", "body": "At the moment, this feature is in Beta and only a few well-known project configurations can be run and deployed using the graphical user interface. The IDE will scan your project and determine automatically if it is compatible. This release of Cloud9 supports the following project configurations:\n\n```\njava Java Web Application\n App Engine Java Managed VM platform\n Maven build system\n```\n\nOver the next few weeks, we are adding support for other configurations and programming languages. If your favorite project type is not yet available, try one of the supported tutorial projects or stay tuned for more info.\n\nIf you are familiar with the terminal, you can use the [`gcloud` command-line utility](https://cloud.google.com/sdk/gcloud/) which comes pre-installed on your workspace and is configured to access projects and resources without having to perform additional setup or authorization." } [/block] [block:api-header] { "type": "basic", "title": "Before you begin" } [/block] - Create a project in the **[Google Cloud Platform Console](https://console.cloud.google.com/)**. Projects enable you to manage all Google Cloud Platform resources for your app, including deployment, access control, billing, and services. 1. Open the **[Cloud Platform Console](https://console.cloud.google.com/)**. 2. In the drop-down menu at the top, select **Create Project**. 3. Click **Show advanced options**. Under **App Engine location**, select a United States location. 4. Give your project a name. 5. Note the **Project ID** because it will be used for commands and in configurations. - **[Enable billing](https://console.cloud.google.com/project/_/settings)** for your project. Enabling billing allows the application to consume billable resources such as running instances and storing data. [block:api-header] { "type": "basic", "title": "Set up your workspace" } [/block] - **[Connect your Google account](https://c9.io/auth/google)** to your Cloud9 account. Connecting your account allows access to your Cloud Platform resources from inside the IDE. If you don't have a Cloud9 account yet it will be created on the fly. - **[Create a workspace](https://c9.io/new/google)** for your Cloud Platform project. Workspaces contain the code and tools that you need to work on your project. The workspace is set up to store source code remotely on [Cloud Source Repositories](https://cloud.google.com/tools/cloud-repositories/docs/) and you can manage your project resources using the [Google Cloud SDK](https://cloud.google.com/sdk/) which comes pre-installed on the workspace's virtual machine. 1. Under **Select a project**, select the Google Cloud Platform project you want to work on. 2. Choose if you want your workspace to be **Private** or **Public**. Public workspaces are free but can be accessed by anybody on the internet. 3. Click **Create workspace**. [block:api-header] { "type": "basic", "title": "Make a Java guestbook app" } [/block] Deploy a basic Java Web Application from Cloud9 to a [Google App Engine Managed VM](https://cloud.google.com/appengine/docs/managed-vms/). This tutorial shows you how to download the app and run a local web server to preview it on your workspace's virtual machine. You can then modify the code and see how the preview is recompiled and reloaded automatically. After you complete customizing your code, you will deploy the application to Google Cloud Platform and see the app run in the cloud. - _Run the project_ to install the sample app and start the preview server. 1. In the menu bar at the top, click **Run Project**. 2. A terminal window with the output of the runner script opens at the bottom. You can resize it to make it easier to read. 3. The script scans your workspace directory to determine that it is empty and starts the installer. 4. When prompted to **Choose a project**, type **`1`** and press enter. 5. The script downloads the code, compiles it, and starts the server. 6. When the message **Your code is running at https://...** appears, click the link. - _Deploy_ the app to Google Cloud Platform. 1. In the menu bar at the top, click **Deploy**. 2. A terminal window with the output of the deploy script opens. 3. Wait for the deployment to complete. This process might take a few minutes. 4. When the message **Your app has been deployed to https://...** appears, click the link. [block:image] { "images": [ { "image": [ "https://files.readme.io/CHu2W0X8TnGYCQErmGiL_Image%202016-01-22%20at%2012.25.36%20pm.png", "Image%202016-01-22%20at%2012.25.36%20pm.png", "2880", "1744", "#f65126", "" ] } ] } [/block] ### Understanding the code The code in this sample app uses Java Servlets with JSP templates. To learn more about the function and location of files in this project, read the [App Engine Java Guestbook](https://cloud.google.com/appengine/docs/java/gettingstarted/ui_and_code) documentation. [block:callout] { "type": "info", "body": "Google App Engine has two runtime environments: the [sandboxed runtime](https://cloud.google.com/appengine/features/#languages_and_runtimes) that supports Python, Go, PHP, and Java, and the [Managed VMs](https://cloud.google.com/appengine/docs/managed-vms/) runtime.\n\nThese tutorials focus only on the Managed VMs runtime. Applications that run on managed VMs can customize their runtime environments and are not subject to the restrictions imposed by the sandboxed runtimes." } [/block] ### Java environment and tools In addition to the tools default that are available on Cloud9 workspaces by default, the workspace for Google Cloud Platform has a number of additional tools pre-installed. [block:parameters] { "data": { "h-0": "Tool", "h-1": "Version", "h-2": "Location", "0-0": "Java", "0-1": "Oracle Java 8 JDK", "0-2": "`/usr/lib/jvm/java-8-oracle/`", "1-0": "Maven", "1-1": "3.3", "2-0": "Google Cloud SDK", "1-2": "`/usr/bin/mvn`", "2-1": "91.0.1", "2-2": "`/usr/local/share/google/google-cloud-sdk/`" }, "cols": 3, "rows": 3 } [/block] [block:api-header] { "type": "basic", "title": "Using your workspace" } [/block] ### Using the `gcloud` utility and Google Cloud SDK The [Google Cloud SDK](https://cloud.google.com/sdk/) comes pre-installed on your workspace's virtual machine and is automatically configured to access your project on Google Cloud Platform. The [`gcloud` command-line utility](https://cloud.google.com/sdk/gcloud/) is available in the terminal window and runs with the same credentials as your connected Google account. You don't need to perform additional authorization steps. View the Cloud SDK configuration properties to see the project and account that were configured automatically: [block:code] { "codes": [ { "code": "$ gcloud config list core/\n[core]\naccount = account@example.org\nproject = extended-arcana-119717", "language": "text", "name": "Cloud9 automatically initializes Google Cloud SDK" } ] } [/block] You can manage resources like virtual machine instances from the terminal window: [block:code] { "codes": [ { "code": "$ gcloud compute instances list\nNAME ZONE MACHINE_TYPE\ngae-default-20151226t090419-anh0 us-central1-c n1-standard-1 ...\ngae-default-20160118t233116-p70n us-central1-b n1-standard-1 ...", "language": "text", "name": "List virtual machine instances with the gcloud tool" } ] } [/block] `gsutil` allows you to access [Google Cloud Storage](https://cloud.google.com/storage/docs/overview) from the command-line: [block:code] { "codes": [ { "code": "$ gsutil ls gs://uspto-pair/applications/0800401*\ngs://uspto-pair/applications/08004010.zip\ngs://uspto-pair/applications/08004011.zip\n...", "language": "text", "name": "List contents of a Google Cloud Storage bucket" } ] } [/block] To learn more about using these tools to create and manage your Google Cloud Platform resources, read the [gcloud Tool Guide](https://cloud.google.com/sdk/gcloud/), [gsutil Tool Guide](https://cloud.google.com/storage/docs/gsutil), and [Accessing Services with gcloud](https://cloud.google.com/sdk/cloudplatform). To discover commands, you can tab-autocomplete `gcloud` subcommands, and also many entities such as your instances and zones. ### Using the Cloud Source Repository Each project on Google Cloud Platform has an associated [Cloud Source Repository](https://cloud.google.com/tools/cloud-repositories/docs/) that can be accessed using Git. You can use this repository for collaborative development and, if you are using the [Google Cloud Debugger](https://cloud.google.com/tools/cloud-debugger), to view debugging information alongside your code in the Cloud Platform Console. The first time you open your workspace, Cloud9 adds the Cloud Source Repository of your project as a Git remote to your workspace folder and clones it. The remote is named `origin`. A system-wide credential helper script provides the information needed by Git to connect securely to the repository using your Google account credentials. [block:code] { "codes": [ { "code": "% git clone https://source.developers.google.com/p/extended-arcana-119717/r/default workspace\nInitialized empty Git repository in /home/ubuntu/workspace/.git/\nFrom https://source.developers.google.com/p/extended-arcana-119717/r/default\n * [new branch] master -> origin/master\nBranch master set up to track remote branch master from origin.", "language": "text", "name": "Cloud9 automatically adds the Cloud Source Repository as a Git remote" } ] } [/block] When you modify files on your workspace, commit the changes and push them to the Cloud Source Repository: [block:code] { "codes": [ { "code": "$ git add .\n$ git commit -m 'local changes'\n$ git push origin master\nTo https://source.developers.google.com/p/extended-arcana-119717/r/default\n 4cc1d7f..018c925 master -> master", "language": "text", "name": "Push changes to the Cloud Source Repository" } ] } [/block] To update files on your workspace, pull changes from the Cloud Source Repository: [block:code] { "codes": [ { "code": "$ git pull origin master\nFrom https://source.developers.google.com/p/extended-arcana-119717/r/default\n * branch master -> FETCH_HEAD\nAlready up-to-date.", "language": "text", "name": "Pull changes from the Cloud Source Repository" } ] } [/block] ### Accessing the Cloud Platform Console <img src="https://files.readme.io/3OBF4UJRRECPRgsPP2tC_open_cloud_console.gif" width="300" style="float:right; margin-left: 10px;"/> Use a shortcut in the project menu to open the [Google Cloud Platform Console](https://console.cloud.google.com/) when you work inside the IDE. 1. In the top menu bar, click on your **project name**. 2. Select **Developers Console**. <br style="clear: both"/> [block:api-header] { "type": "basic", "title": "Known Issues" } [/block] A number of bugs are known issues during the beta and we are actively working to resolve them. The Cloud9 extensions which implement GCP connectivity are fixed to the version they had when the workspaces was created. They are not updated automatically. To get never versions, delete your workspace and create a new one. This release on Cloud9 only supports a few well-known project layouts. To run a project it has to be: Java Web Application with JSP, Servlets; Maven; Java App Engine Managed VM. The system detects `pom.xml`, `web.xml` and other files for validation. If the cloud repository is empty, `git` throws an error during initial workspace cloning. This error can be ignored. The output window for __deploy__ has no stop button and its output can become detached. Attempting to deploy a new project can lead to an error if the project is not connected to a Billing Account. This error message is combined with others and hard to find. Cloud9 should run a pre-check and warn the user if the current project is not configured for Billing. Live preview frame should reload automatically by monitoring the terminal for messages that indicate the watcher has triggered <div style="text-align: center;"><a target="_blank" href="https://community.c9.io/t/documentation-cloud9-for-google-cloud-platform/1666?utm_source=docs.c9.io&utm_medium=article&utm_campaign=Docs%2BFeedback" class="button info solid">Submit feedback or questions about this page</a></div>