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。

享受;)

相关问题