2016-06-06 19 views
4

Ich benutze gitlab, gitab-ci und ich bin ziemlich neu in Continuous Integration. Ich versuche, über Bash-Skript auf Code-Pushs zu testen und zu implementieren.Gitlab CI wie PHP zu implementieren?

das ist, wie mein .gitlab-ci.yml wie wo auf deploy sieht Ich versuche Benutzer zu ändern, aber wird nicht funktionieren

before_script: 
    - composer install --prefer-dist > /dev/null 

stages: 
    - build 
    - test 
    - deploy 


unitTesting: 
    stage: test 
    script: 
    - echo "Running PHPUnit Tests" 
    - php vendor/bin/phpunit --colors --debug --coverage-text 

job_deploy_master: 
    stage: deploy 
    only: 
    - master 
    script: 
    - /bin/su - myuser -c "deploy.sh" //here I try to change linux user to be able to checkout code but fails with **su: must be run from a terminal** 
    tags: 
    - php 

und hier habe ich die bash, die Codes auf Produktionsstätte, wenn Tests ziehen soll sind vorbei

Ich versuchte zu google, um einige Beispiele zu finden, die sich auf PHP beziehen, aber ohne Erfolg. Kann jemand zeigen, wie das funktionieren sollte

+1

zu ersetzen Ich fürchte, es ist ziemlich unklar, was das Problem ist. Sie haben den Prozess logisch definiert, so dass eine der Phasen fehlschlägt? Mein Rat ist, sich nicht auf die Samples anderer zu konzentrieren, sondern auf Ihren eigenen Fall - definieren Sie, was Sie erreichen möchten und was der ideale Prozess für Sie wäre. Versuchen Sie dann, diesen Prozess einzurichten und hier ein bestimmtes Problem zu veröffentlichen, auf das Sie stoßen könnten. – tmt

+0

Lassen Sie mich meine Beispiele kommentieren, wo sie scheitern und vielleicht klarer werden mein Problem – fefe

+0

OK, jetzt ist es klarer, also konzentrieren wir uns auf Ihren Bereitstellungsprozess: Ich glaube nicht, dass Sie den Benutzer ändern können (ich könnte falsch liegen) und du solltest es wahrscheinlich auch nicht tun. Außerdem müssen Sie wahrscheinlich nicht 'git pull' machen, da Sie den Code bereits ausgecheckt haben. Welche Aktionen möchten Sie während der Bereitstellung ausführen? – tmt

Antwort