ビルド環境のシェルとコマンド - AWS CodeBuild

ビルド環境のシェルとコマンド

ビルドのライフサイクル中にビルド環境で実行するための AWS CodeBuild の一連のコマンドを提供します (たとえば、ビルドの依存関係のインストール、ソースコードのテストおよびコンパイルなど)。これらのコマンドを指定する方法はいくつかあります。

  • ビルド仕様ファイルを作成し、それをソースコードに組み込みます。このファイルでは、ビルドライフサイクルの各段階で実行するコマンドを指定します。詳細については、『CodeBuild のビルド仕様に関するリファレンス』を参照してください。

  • CodeBuild コンソールを使用してビルドプロジェクトを作成します。[ビルドコマンドの挿入] の [ビルドコマンド] に、[build] フェーズで実行するコマンドを入力します。詳細については、「ビルドプロジェクトの作成 (コンソール)」を参照してください。

  • CodeBuild コンソールを使用してビルドプロジェクトの設定を変更します。[ビルドコマンドの挿入] の [ビルドコマンド] に、[build] フェーズで実行するコマンドを入力します。詳細については、「ビルドプロジェクトの設定の変更 (コンソール)」を参照してください。

  • AWS CLI または AWS SDK を使用して、ビルドプロジェクトを作成するか、ビルドプロジェクトの設定を変更します。コマンドを使用して buildspec ファイルを含むソースコードを参照するか、buildspec ファイルと同等の内容を含む単一の文字列を指定します。詳細については、「ビルドプロジェクトの作成」または「ビルドプロジェクトの設定の変更」を参照してください。

  • AWS CLI または AWS SDK を使用してビルドを開始し、buildspec ファイルを指定するか、buildspec ファイルと同等の内容を含む単一の文字列を指定します。詳細については、ビルドの実行 にある buildspecOverride 値の説明を参照してください。

任意の Shell コマンド言語 (sh) のコマンドを指定できます。ビルド仕様バージョン 0.1 では、CodeBuild は各ビルド環境の各インスタンスで各シェルコマンドを実行します。つまり、各コマンドは他のすべてのコマンドとは独立して実行されます。したがって、デフォルトでは、以前のコマンド (ディレクトリの変更や環境変数の設定など) の状態に依存する単一のコマンドを実行することはできません。この制限を回避するには、バージョン 0.2 を使用することをお勧めします。これにより、問題が解決されます。バージョン 0.1 を使用する場合は、以下のアプローチをお勧めします。

  • デフォルトシェルの単一のインスタンスで実行するコマンドを含むシェルスクリプトをソースコードに含めます。たとえば、my-script.sh という名前のファイルを、cd MyDir; mkdir -p mySubDir; cd mySubDir; pwd; などのコマンドを含むソースコードに含めます。次に、buildspec ファイルで ./my-script.sh コマンドを指定します。

  • buildspec ファイルで (または build フェーズのみ [ビルドコマンド] 設定で)、デフォルトシェルの単一のインスタンスで実行するすべてのコマンドが含まれている単一のコマンド (cd MyDir && mkdir -p mySubDir && cd mySubDir && pwd など) を入力します。

CodeBuild でエラーが発生した場合は、デフォルトシェルの独自のインスタンスで単一のコマンドを実行するのに比べて、トラブルシューティングが難しくなる場合があります。

Windows Server Core 2016 イメージで実行されるコマンドには、Powershell シェルが使用されます。