web-dev-qa-db-ja.com

AWSコードビルドのディレクトリを変更する方法はありますか

Snap-CIの廃止に伴い、私はビルドをAWS CodeBuildで動作させるように努めてきました。 buildspec.ymlをビルドしましたが、ディレクトリを変更してもうまくいかないようです。

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

これはかなり単純なはずですが、これまでのところ、これを機能させるための運がありません。

12
Zipper

Buildspec.ymlのバージョンを0.2に変更すると、シェルはその設定を保持します。バージョン:0.1では、コマンドごとにクリーンなシェルを取得します。

楽しい ;)

27
Eric Nord

CodeBuildの各コマンドは、ソースのルートに対して個別のシェルで実行されます(CODEBUILD_SRC_DIR環境変数からソースのルートにアクセスします)。

可能なオプションは

  • 同じシェルの下で実行するコマンドを短絡します。比較的単純なbuildspec(自分のものなど)がある場合に機能します。

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

  • コマンドをbuildspecからスクリプトに移動し、より詳細に制御します(より複雑なビルドロジックに役立ちます)。

commands: - ./mybuildscipt.sh

これらのいずれかが有効かどうかをお知らせください。

-編集-

CodeBuildは、この回避策が不要になったbuildspec v0.2をリリースしました。

13
awsnitin