4

隨着Snap-CI的消失我一直在試圖讓我們的構建工作在AWS CodeBuild上。我建立了buildspec.yml,但更改目錄似乎不起作用。有沒有辦法在AWS codebuild上更改目錄

version: 0.1 

phases: 
    install: 
    commands: 
     - apt-get update -y 
     - apt-get install -y node 
     - apt-get install -y npm 
    build: 
    commands: 
     - cd MyDir //Expect to be in MyDir now 
     - echo `pwd` //Shows /tmp/blablabla/ instead of /tmp/blablabla/MyDir 
     - npm install //Fails because I'm not in the right directory 
     - bower install 
     - npm run ci 
    post_build: 
    commands: 
     - echo Build completed on `date` 
artifacts: 
    files: 
    - MyDir/MyFile.war 
    discard-paths: yes 

看起來這應該是相當簡單的,但到目前爲止我還沒有運氣得到這個工作。

回答

6

CodeBuild中的每個命令都在一個單獨的shell中運行,並與您的源代碼(從CODEBUILD_SRC_DIR環境變量的源代碼的根目錄)運行。

你可能的選擇是

  • 短路命令到同一個shell下運行:當你有比較簡單的buildspec(像你這樣)的作品。

commands: - cd MyDir && npm install && bower install - cd MyDir && npm run ci

  • 從buildspec移動你的命令腳本,並有更多的控制(對於更復雜的構建邏輯有用)。

commands: - ./mybuildscipt.sh

讓我知道,如果這些工作給你的。

- 編輯 -

CodeBuild自推出buildspec V0.2哪裏這項工作圍繞不再需要。

+0

我剛剛碰到同樣的問題..在每一行可惜cd'ing沒有幫助: '''[容器] 2017年7月2日12時46分55秒Command未成功退出cd dealer-ai && npm install退出狀態1''' '''[容器] 2017/07/02 12:46:55階段完成:INSTALL成功:false''' ''' '[Container] 2017/07/02 12:46:55相位上下文狀態碼:COMMAND_EXECUTION_ERROR消息:執行命令時出錯:cd dealer-ai && npm install。原因:退出狀態1''' –

+1

CodeBuild自推出buildspec v0.2以來不再需要這種解決方法。 http://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-versions – awsnitin

7

如果將buildspec.yml版本更改爲0.2,那麼shell將保留其設置。 在版本:0.1中,您爲每個命令獲得了一個乾淨的shell。

享受;)

相關問題