2016-11-18 7 views
2

Ich verwende react-starter-kit für die Entwicklung meiner Webanwendung und Gitlab als meine Remote-Repository git.
Ich möchte eine kontinuierliche Bereitstellung so konfigurieren, dass bei jedem Push an den Master das Skript npm run deploy ausgeführt wird.CI mit Gitlab und Heroku

Von meinem lokalen PC aus führt die Ausführung von npm run deploy die Knotenanwendung aus und verschiebt sie zum Remote-Repository heroku git. Es verwendet die lokalen Anmeldeinformationen auf meinem PC.

Ich habe den gitlab runner konfiguriert (in der .yml Datei), um das gleiche npm run deploy auszuführen, aber es schlägt mit Error: fatal: could not read Username for 'https://git.heroku.com': No such device or address fehl. Ich muss einen Weg finden, den Gitlab Läufer zu Heroku zu authentifizieren. Ich habe versucht, env Variable HEROKU_API_KEY zu setzen, aber es hat auch nicht funktioniert.

Wie kann ich von meinem Gitlab Runner zu meinem Heroku Git Repo schieben?

+0

Können wir Ihre '.gitlab-ci.yml' Datei sehen? Sehen Sie auch, es ist Python, aber es könnte hilfreich sein: https://docs.gitlab.com/ce/ci/examples/test-and-deploy-python-application-to-heroku.html#configure-project –

Antwort

2

Sie sollten dlp in Ihrem Yml verwenden. Versuchen Sie so etwas wie dies in der .gitlab-ci.yml:

before_script: 
    - apt-get -qq update 
    - npm set progress=false 
    - npm install --silent 

deploy: 
    script: 
    - npm run deploy 
    - apt-get install -yqq ruby ruby-dev --silent 
    - gem install dpl 
    - dpl --provider=heroku --app=your-app-name --api-key=$HEROKU_API_KEY 
    only: 
    - master 

Sie preferaby wollen die env Variable $ HEROKU_API_KEY von Gitlab hinzufügen möchten, hier nicht direkt.

+1

Es ist auch Erwähnenswert ist hier, dass Sie mehrere Bilder in verschiedenen Phasen des Builds verwenden können. Sie können "image: ruby: latest" zum Deploy-Schritt und "image: node: latest" hinzufügen. Dies ermöglicht es Ihnen, mit docker umzuschalten, indem Sie 'artifacts:' verwenden, um die erstellten Dateien zwischen den Phasen zu übergeben. – xam