joe the coder
joe the coder

Reputation: 799

CircleCI environmental variables for HEROKU not being set properly causing GIT to fail

I am a CircleCI user, and I am setting up an integration with Heroku.

I want to do the following, and setup security with integrations with dockerHub and also to Heroku from the CircleCI portal page, using this config.yml file.

The problem is that CircleCI doesn't seem to know what these variables should be set to, and instead just echos.

${HEROKU_API_KEY} ${HEROKU_APP}

config.yml


version: 2 jobs: build:

working_directory: ~/springboot_swagger_example-master-cassandra

docker:
  - image: circleci/openjdk:8-jdk-browsers

steps:

  - checkout

  - restore_cache:
      key: springboot_swagger_example-master-cassandra-{{ checksum "pom.xml" }}

  - run: mvn dependency:go-offline

  - save_cache:
      paths:
        - ~/.m2
      key: springboot_swagger_example-master-cassandra-{{ checksum "pom.xml" }}

  - type: add-ssh-keys
  - type: deploy
    name: "Deploy to Heroku"
    command: |
      if [ "${CIRCLE_BRANCH}" == "master" ]; then
        # Install Heroku fingerprint (this is heroku's own key, NOT any of your private or public keys)
        echo 'heroku.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAu8erSx6jh+8ztsfHwkNeFr/SZaSOcvoa8AyMpaerGIPZDB2TKNgNkMSYTLYGDK2ivsqXopo2W7dpQRBIVF80q9mNXy5tbt1WE04gbOBB26Wn2hF4bk3Tu+BNMFbvMjPbkVlC2hcFuQJdH4T2i/dtauyTpJbD/6ExHR9XYVhdhdMs0JsjP/Q5FNoWh2ff9YbZVpDQSTPvusUp4liLjPfa/i0t+2LpNCeWy8Y+V9gUlDWiyYwrfMVI0UwNCZZKHs1Unpc11/4HLitQRtvuk0Ot5qwwBxbmtvCDKZvj1aFBid71/mYdGRPYZMIxq1zgP1acePC1zfTG/lvuQ7d0Pe0kaw==' >> ~/.ssh/known_hosts
        # git push [email protected]:yourproject.git $CIRCLE_SHA1:refs/heads/master
        # Optional post-deploy commands
        # heroku run python manage.py migrate --app=my-heroku-project
      fi          

  - run: mvn package

  - run:
      name: Install Docker client
      command: |
        set -x
        VER="17.03.0-ce"
        curl -L -o /tmp/docker-$VER.tgz https://get.docker.com/builds/Linux/x86_64/docker-$VER.tgz
        tar -xz -C /tmp -f /tmp/docker-$VER.tgz
        mv /tmp/docker/* /usr/bin
  - run:
     name: Build Docker image
     command: docker build -t joethecoder2/spring-boot-web:$CIRCLE_SHA1 .

  - run:
      name: Push to DockerHub
      command: |
        docker login -u$DOCKERHUB_LOGIN -p$DOCKERHUB_PASSWORD
        docker push joethecoder2/spring-boot-web:$CIRCLE_SHA1

  - run:
      name: Setup Heroku
      command: |
        curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
        chmod +x .circleci/setup-heroku.sh
        .circleci/setup-heroku.sh
  - run:
      name: Deploy to Heroku
      command: |
        mkdir app
        cd app/ 
        heroku create 
        # git push https://heroku:[email protected]/$HEROKU_APP.git master
        echo ${HEROKU_API_KEY}
        echo ${HEROKU_APP}
        git push https://heroku:${HEROKU_API_KEY}@git.heroku.com/${HEROKU_APP}.git master

  - store_test_results:
      path: target/surefire-reports

  - store_artifacts:
      path: target/spring-boot-web-0.0.1-SNAPSHOT.jar

The problem is that CircleCI doesn't seem to know what these variables should be set to, and instead just echos.

${HEROKU_API_KEY} ${HEROKU_APP}

The question, and problem is why aren't these settings being detected automatically?

Upvotes: 0

Views: 373

Answers (1)

FelicianoTech
FelicianoTech

Reputation: 4017

You need to set the value for the variables: https://circleci.com/docs/2.0/env-vars/

They are being echo'd because you're echoing them.

echo ${HEROKU_API_KEY}
echo ${HEROKU_APP}

Upvotes: 1

Related Questions