TL;DR クロスプラットフォーム開発や後方互換性のために,複数の環境でビルド・テスト・デプロイを実行したいことがよくあります.GitLab の CI/CD でこれを実現するためのパイプライン戦略は3つあります.それぞれ一長一短あるため,要求に応じて使い分ける必要があります. 単一パイプライン・単一ステージ:すべての環境を1つのパイプラインで処理する.ビルド,テスト,デプロイを1つのステージにまとめて処理する. 単一パイプライン・複数ステージ:すべての環境を1つのパイプラインで処理する.ビルド,テスト,デプロイを3つのステージに分けて処理する. 複数パイプライン・複数ステージ:それぞれの環境を異なるパイプラインで処理する.ビルド,テスト,デプロイを3つのステージに分けて処理する. なお,理論上は「複数パイプライン・単一ステージ」も考えられますが,あまり使いどころがないので本稿では扱いません