Help us understand the problem. What is going on with this article?

AWS CodePipelineを通すとsymlinkがテキストファイルになる件

はじめに

AWS CodePipelineでは、

  1. Source

  2. Build

  3. Application

の3ステージでCI/CDパイプラインを実行します。

上記のSourceステージのリポジトリにsymlinkがあった場合、それらはBuildステージの段階でただのテキストファイルに変化してしまうようです。

Sourceステージでの状態

以下は、Sourceステージ(CodeCommitあるいはGitHubリポジトリ)での状態です。
この段階ではsymlinkとなっています。

$ ls -l
-rw-r--r--  1 foo  bar  193 Nov 27 19:10 appspec.yml
-rw-r--r--  1 foo  bar    0 Nov 27 19:10 blank.txt
-rw-r--r--  1 foo  bar  108 Nov 27 19:10 buildspec.yml
lrwxr-xr-x  1 foo  bar    9 Nov 27 19:10 symlink.txt -> blank.txt # symlinkになっている

Buildステージでの状態

次に、Buildステージでの状態を見てみます。

具体的にはマネジメントコンソールのCodeBuildの画面での、このファイルです。
Sourceステージのリポジトリの特定のブランチ・コミットが、ZIPに固められてS3にアップロードされたもの、という理解です。

スクリーンショット 2019-11-27 19.57.45.png

これをダウンロードして中身を見てみると、以下の通りsymlinkでは無くなっています。

$ ls -l
-rw-rw-r--  1 foo  bar  193 11 27 10:01 appspec.yml
-rw-rw-r--  1 foo  bar    0 11 27 10:01 blank.txt
-rw-rw-r--  1 foo  bar  108 11 27 10:01 buildspec.yml
-rwxrwxrwx  1 foo  bar    9 11 27 10:01 symlink.txt # symlinkではなくなっている

symlink.txtの中身は以下のようなテキストファイルになっています

symlink.txt
blank.txt

最後に

CodePipelineの仕様?なんでしょうか。

CodePipelineを使っていて、気になった点でした。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away