未正确设置HEROKU的CircleCI环境变量导致GIT失败

时间:2018-06-16 15:17:32

标签: docker github heroku circleci

我是CircleCI用户,我正在与Heroku建立集成。

我想要执行以下操作,并使用此config.yml文件,通过与dockerHub的集成以及CircleCI门户页面中的Heroku设置安全性。

问题是CircleCI似乎不知道应该将这些变量设置为什么,而只是回声。

$ {HEROKU_API_KEY} $ {HEROKU_APP}

config.yml

版本:2 工作:   建立:

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 git@heroku.com: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:$HEROKU_API_KEY@git.heroku.com/$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

问题是CircleCI似乎不知道应该将这些变量设置为什么,而只是回声。

$ {HEROKU_API_KEY} $ {HEROKU_APP}

问题和问题是为什么不自动检测这些设置?

1 个答案:

答案 0 :(得分:1)

您需要设置变量的值:https://circleci.com/docs/2.0/env-vars/

他们正在回应,因为你正在回应他们。

echo ${HEROKU_API_KEY}
echo ${HEROKU_APP}