2016-06-06 1 views
4

gitlab, gitab-ci를 사용하고 있으며 Continuous Integration을 처음 접했습니다. 나는 코드 푸시에 bash 스크립트를 통해 테스트하고 전개하려고 시도한다.Gitlab CI PHP 배포 방법은 무엇입니까?

내 .gitlab-ci.yml 내가 사용자를 변경하려고 할 경우 배포에처럼 보이지만

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 

작동하지 않습니다 여기에 내가 시험의 경우 생산 현장에 코드를 뽑아 가정 bash는이 방법

통과 중입니다

#!/bin/bash 

echo "Starting Deploy" 
printf '%s\n' "${SUDO_USER:-$USER}" //I'm interested to see which user try to run this script outputs gitlab-runner 
cd /home/builds/gpx-convertor 
git pull 
composer install --prefer-dist > /dev/null 

저는 PHP와 관련된 몇 가지 사례를 찾기 위해 google을 시도했지만 성공하지 못했습니다. 누군가가 sudo는 -Hu와 스와 -c를 교체

+1

나는 그것이 문제가 무엇인지 다소 불분명 두려워. 프로세스가 논리적으로 정의되었으므로 단계 중 하나라도 실패합니까? 내 충고는 다른 사람의 표본에 집중하는 것이 아니라 자신이 원하는 경우 달성 할 내용과 자신에게 적합한 과정을 정의하는 것입니다. 그런 다음 해당 프로세스를 설정하고 비틀 거릴 수있는 특정 문제를 게시하십시오. – tmt

+0

내가 어디에서 실패했는지, 내 문제가 더 명확 해지는 것을 내 예제에 설명하겠습니다. – fefe

+0

이제 배포 프로세스에 집중하겠습니다. 사용자를 변경할 수 있다고 생각하지 않습니다 (잘못된 것일 수 있습니다). 어쨌든해서는 안됩니다. 또한 이미 코드를 체크 아웃했기 때문에'git pull '할 필요가 없을 것입니다. 배포 중에 수행 할 작업은 무엇입니까? – tmt

답변

1

시도를 작동해야 않는 방법을 보여줄 수