/cli

Command Line client for Scalingo PaaS

Primary LanguageGoOtherNOASSERTION

Scalingo-CLI v1.22.1

Codeship Status for Scalingo/cli

This repository contains the command line utility for the public PaaS Scalingo.

Visit our website.

How to Build?

The project is using Go, then you need a running Go environment: Official documentation

Once that's done, all you have to do is to go get the project, with the following command:

go get github.com/Scalingo/cli/scalingo

That's it, you've build the latest version of the Scalingo CLI (the binary will be present in $GOPATH/bin/scalingo)

How to Upgrade?

go get -u github.com/Scalingo/cli/scalingo

Run Behind a Proxy

You have to setup the following environment variables:

HTTP_PROXY=http://<proxy host>:<proxy port>
HTTPS_PROXY=https://<proxy host>:<proxy port>

Disable Update Checking

By default the CLI is making an HTTP request to learn if a newer version is available. To disable this feature, define the environment variable:

DISABLE_UPDATE_CHECKER=true

Command Help

NAME:
   Scalingo Client - Manage your apps and containers

USAGE:
   scalingo-cli [global options] command [command options] [arguments...]

VERSION:
   1.22.1

AUTHOR:
   Scalingo Team <hello@scalingo.com>

COMMANDS:
     help  Shows a list of commands or help for one command

   Addons:
     addons            List used add-ons
     addons-add        Provision an add-on for your application
     addons-remove     Remove an existing addon from your app
     addons-upgrade    Upgrade or downgrade an add-on attached to your app
     addons-info       Display information about an add-on attached to your app
     backups-config    Configure the periodic backups of a database
     backups           List backups for an addon
     backups-create    Ask for a new backup
     backups-download  Download a backup
     backup-download   Download a backup

   Addons - Global:
     addons-list   List all addons
     addons-plans  List plans

   Alerts:
     alerts          List the alerts of an application
     alerts-add      Add an alert to an application
     alerts-update   Update an alert
     alerts-enable   Enable an alert
     alerts-disable  Disable an alert
     alerts-remove   Remove an alert from an application

   App Management:
     destroy                 Destroy an app /!\
     rename                  Rename an application
     apps-info               Display the application information
     logs, l                 Get the logs of your applications
     logs-archives, la       Get the logs archives of your applications
     run, r                  Run any command for your app
     one-off-stop            Stop a running one-off container
     ps                      Display your application containers
     scale, s                Scale your application instantly
     restart                 Restart processes of your app
     force-https             Enable/Disable automatic redirection of traffic to HTTPS for your application
     sticky-session          Enable/Disable sticky sessions for your application
     router-logs             Enable/Disable router logs for your application
     set-canonical-domain    Set a canonical domain.
     unset-canonical-domain  Unset a canonical domain.
     db-tunnel               Create an encrypted connection to access your database
     open                    Open app on default web browser
     dashboard               Open app dashboard on default web browser

   Autoscalers:
     autoscalers          List the autoscalers of an application
     autoscalers-add      Add an autoscaler to an application
     autoscalers-remove   Remove an autoscaler from an application
     autoscalers-update   Update an autoscaler
     autoscalers-disable  Disable an autoscaler
     autoscalers-enable   Enable an autoscaler

   CLI Internals:
     update  Update 'scalingo' client

   Collaborators:
     collaborators         List the collaborators of an application
     collaborators-add     Invite someone to work on an application
     collaborators-remove  Revoke permission to collaborate on an application

   Custom Domains:
     domains         List the domains of an application
     domains-add     Add a custom domain to an application
     domains-remove  Remove a custom domain from an application
     domains-ssl     Enable or disable SSL for your custom domains

   Cron Tasks:
     cron-tasks  List the cron tasks of an application

   Databases:
     redis-console                                       Run an interactive console with your Redis addon
     mongo-console                                       Run an interactive console with your MongoDB addon
     mysql-console                                       Run an interactive console with your MySQL addon
     pgsql-console, psql-console, postgresql-console     Run an interactive console with your PostgreSQL addon
     influxdb-console                                    Run an interactive console with your InfluxDB addon

   Deployment:
     deployments                                          List app deployments
     deployment-logs                                      View deployment logs
     deployment-follow                                    Follow deployment event stream
     deploy                                               Trigger a deployment by archive
     deployment-delete-cache, deployment-cache-delete     Reset deployment cache

   Display metrics of the running containers:
     stats  Display metrics of the currently running containers

   Environment:
     env        Display the environment of your apps
     env-get    Get the requested environment variable from your app
     env-set    Set the environment variables of your apps
     env-unset  Unset environment variables of your apps

   Events:
     user-timeline  List the events you have done on the platform
     timeline       List the actions related to a given app

   Git:
     git-setup  Configure the Git remote for this application
     git-show   Display the Git remote URL for this application

   Global:
     apps               List your apps
     create, c          Create a new app
     login              Login to Scalingo platform
     logout             Logout from Scalingo
     regions            List available regions
     config             Configure the CLI
     self, whoami       Get the logged in profile

   Integration Link:
     integration-link                    Show integration link of your app
     integration-link-create             Link your Scalingo application to an integration
     integration-link-update             Update the integration link parameters
     integration-link-delete             Delete the link between your Scalingo application and the integration
     integration-link-manual-deploy      Trigger a manual deployment of the specified branch
     integration-link-manual-review-app  Trigger a review app creation of the pull/merge request ID specified

   Integrations:
     integrations              List your integrations
     integrations-add          Link your Scalingo account with your account on a tool such as github.com
     integrations-delete       Unlink your Scalingo account and your account on a tool such as github.com
     integrations-import-keys  Import public SSH keys from integration account

   Log drains:
     log-drains-add     Add a log drain to an application
     log-drains         List the log drains of an application
     log-drains-remove  Remove a log drain from an application and its associated addons

   Notifiers:
     notifiers          List your notifiers
     notifiers-details  Show details of your notifiers
     notifiers-add      Add a notifier for your application
     notifiers-update   Update a notifier
     notifiers-remove   Remove an existing notifier from your app

   Notifiers - Global:
     notification-platforms  List all notification platforms

   Public SSH Keys:
     keys         List your SSH public keys
     keys-add     Add a public SSH key to deploy your apps
     keys-remove  Remove a public SSH key

   Region migrations:
     migration-create  Start migrating an app to another region
     migration-run     Run a specific migration step
     migration-abort   Abort a migration
     migrations        List all migrations linked to an app
     migration-follow  Follow a running migration

   Review Apps:
     review-apps  Show review apps of the parent application

   Runtime Stacks:
     stacks      List the available runtime stacks
     stacks-set  Set the runtime stack of an app

GLOBAL OPTIONS:
   --addon value             ID of the current addon (default: "<addon_id>") [$SCALINGO_ADDON]
   --app value, -a value     Name of the app (default: "<name>") [$SCALINGO_APP]
   --remote value, -r value  Name of the remote (default: "scalingo")
   --region value            Name of the region to use
   --version, -v             print the version

Development Setup

In order to build the current development version and use it against the development services:

cd scalingo
go build .
SCALINGO_API_URL=http://172.17.0.1:3001 SCALINGO_AUTH_URL=http://172.17.0.1:1234 ./scalingo login --api-token <admin user API token>

Release a New Version

Get the latest version of the CLI:

git switch master
git pull origin master

(optional) Cherry Pick Commits Included in the Release

You may want to cherry pick the commits to include in the release. You first need to get the commit ID of the previous release (let's call it base commit ID). Then create a new branch and cherry pick all the commits you need, from the oldest to the most recent. Use the commit ID of the merge of every pull request you want to include in your release. Don't forget to also cherry pick the commit for the version bump.

git checkout <base commit ID>
git checkout -b v1.22.1
git cherry-pick -m 1 <commit ID number 1>
git cherry-pick -m 1 <commit ID number 2>
...
git cherry-pick -m 1 <commit ID number X>
git push --set-upstream origin v1.22.1

New Version Bump

Bump new version number in:

  • CHANGELOG.md
  • .goxc.json
  • README.md
  • VERSION
  • config/version.go

And commit these changes:

git add .
git commit -m "Bump version 1.22.1"
git push origin master

Tag the New Release

git tag 1.22.1
git push --tags

Build the New Release

Build the new version for all platforms with:

./dists/make-release.sh -v 1.22.1 -b

Tag and release a new version on GitHub here. Attach the zip archives created by the make-release.sh script to this release.

Last, restart the Scalingo application cli-download-service. It serves as cache between GitHub and our customers for a more efficient check of what is the new CLI version. Type:

scalingo --region osc-fr1 -a cli-download-service restart

You can now update the changelog and tweet about it!

[Changelog] CLI - Release of version 1.22.1 https://cli.scalingo.com - More news at https://changelog.scalingo.com #cli #paas #changelog #bugfix

Add in a tweets thread the changelog of this new version.