Deploying to Clever Cloud Permalink to "Deploying to Clever Cloud"

Clever cloud is an IT Automation platform

Clever cloud logo

Before you start Permalink to "Before you start"

You must install the Clever cloud CLI.

You must also create a Clever Cloud account and log in with the CLI by running the following command clever login

Opening https://console.clever-cloud.com/cli-oauth?cli_version=2.7.1&cli_token=XXX in your browser to log you in…
Login successful as ...

Create your Clever Cloud application Permalink to "Create your Clever Cloud application"

  1. If you are using maven clever create --type maven [your application name] or using gradle clever create --type gradle [your application name]

  2. Add a database addon to your application clever addon create [addon provider] [your addon name] --link [your application name]

    List supported addon providers clever addon providers

     cellar-addon      Cellar S3 storage       S3-like online file storage web service
     config-provider   Configuration provider  Expose configuration to your applications  (via environment variables)
     es-addon          Elastic Stack           Elasticsearch with Kibana and APM server as options
     fs-bucket         FS Buckets              Persistent file system for your application
     mongodb-addon     MongoDB                 A noSQL document-oriented database
     mysql-addon       MySQL                   An open source relational database management system
     postgresql-addon  PostgreSQL              A powerful, open source object-relational database system
     redis-addon       Redis                   Redis by Clever Cloud is an in-memory key-value data store, powered by Clever Cloud
     

    see supported addons

  3. Setup env var clever env set CC_PRE_RUN_HOOK "cp ./clevercloud/application-clevercloud.yml ./application-prod.yml"

  4. Enable dedicated build clever scale --build-flavor M

    see dedicated build

Configure your JHipster application Permalink to "Configure your JHipster application"

  1. Add a clevercloud/ folder in your project.

  2. create clevercloud/application-clevercloud.yml for using predefined clever cloud addon env var

    For PostgreSQL

     spring:
         datasource:
             type: com.zaxxer.hikari.HikariDataSource        
             url: jdbc:postgresql://${POSTGRESQL_ADDON_HOST}:${POSTGRESQL_ADDON_PORT}/${POSTGRESQL_ADDON_DB}?useUnicode=true&characterEncoding=utf8&useSSL=false
             username: ${POSTGRESQL_ADDON_USER}
             password: ${POSTGRESQL_ADDON_PASSWORD}
             hikari:
                 maximumPoolSize: 2
     

    For MySQL

     spring:
         datasource:
             type: com.zaxxer.hikari.HikariDataSource        
             url: jdbc:mysql://${MYSQL_ADDON_HOST}:${MYSQL_ADDON_PORT}/${MYSQL_ADDON_DB}?useUnicode=true&characterEncoding=utf8&useSSL=false
             username: ${MYSQL_ADDON_USER}
             password: ${MYSQL_ADDON_PASSWORD}
             hikari:
                 maximumPoolSize: 2
     

    For MongoDB

     spring:
       data:
         mongodb:
           uri: ${MONGODB_ADDON_URI}
           database: ${MONGODB_ADDON_DB}
     
  3. add a json file that contain the goal field to indicate how to start your application

    For maven create clevercloud/maven.json file and using your pom.xml artifactId

     {
         "build": {
             "type": "maven",
             "goal": "-Pprod package -DskipTests"
         },
         "deploy": {
         "jarName": "./target/[REPLACE BY ARTIFACTID]-0.0.1-SNAPSHOT.jar"
         }
     }
     

    For gradle create clevercloud/gradle.json file and using gradle.properties rootProject.name

     {
         "build": {
             "type": "gradle",
             "goal": "-Pprod bootJar -x test"
         },
         "deploy": {
             "jarName": "./build/libs/[REPLACE BY rootProject.name]-0.0.1-SNAPSHOT.jar"
         }
     }
     

Deploy your application Permalink to "Deploy your application"

Using CLI Permalink to "Using CLI"

You must commit before deploy

git commit -m "Clever deploy"

then run :

clever deploy

Using gitlab CI Permalink to "Using gitlab CI"

define $CLEVER_TOKEN and CLEVER_SECRET to gitlab CI/CD environment variables

add this stage to your .gitlab-ci.yml

deploy-to-clever-env:
  stage: deploy
  variables:
    APP_NAME: [clever cloud app name]
    APP_ID: [clever cloud app id]
  script:
    - wget https://clever-tools.cellar.services.clever-cloud.com/releases/latest/clever-tools-latest_linux.tar.gz
    - tar xvzf clever-tools-latest_linux.tar.gz
    - ./clever-tools-latest_linux/clever login --token $CLEVER_TOKEN --secret $CLEVER_SECRET
    - ./clever-tools-latest_linux/clever link ${APP_ID}
    - ./clever-tools-latest_linux/clever deploy -a ${APP_NAME}
  environment:
    name: [env name]
    url: https://${APP_NAME}.cleverapps.io

Using Github Action Permalink to "Using Github Action"

define CLEVER_TOKEN and CLEVER_SECRET to Github secret (Settings > Secret)

add this step to your .github-action.yml

- uses: actions/checkout@v2
- name: Deploy on cc
  env:
    APP_NAME:[clever cloud app name]
    APP_ID: [clever cloud app id]
  run: |
    git fetch --prune --unshallow
    wget https://clever-tools.cellar.services.clever-cloud.com/releases/latest/clever-tools-latest_linux.tar.gz
    tar xvzf clever-tools-latest_linux.tar.gz
    ./clever-tools-latest_linux/clever login --token $ --secret $
    ./clever-tools-latest_linux/clever link $
    ./clever-tools-latest_linux/clever deploy -f -a $

Changing the Java version Permalink to "Changing the Java version"

You can select the Java version (Java 11 by default)

clever env set CC_JAVA_VERSION 12

More information Permalink to "More information"