環境
- GitLab 18.6
やりたいこと
GitLabCIを使ってビルドして成果物をアーティファクトとして保存したかった。
保存するときにバージョンを取得しファイル名に組み込みたかったのだが、
script: - yarn install --frozen-lockfile - yarn build - VERSION=$(node -p "require('./manifest.json').version") - echo $VERSION artifacts: name: "my-chrome-extension-v$VERSION" # ここに値が入らない paths: - dist/
なぜかダウンロードしたときのファイル名は「my-chrome-extension-v.zip」となってしまいVERSION環境変数の値が反映されない。
対策
GitLab 16.4より $GITLAB_ENV に環境変数を渡すことで script セクションから artifacts と cache セクションに環境変数を渡すことができるようになった。
今回のケースだと以下のようになる。
script: - yarn install --frozen-lockfile - yarn build - VERSION=$(node -p "require('./manifest.json').version") - echo "VERSION=$VERSION" >> $GITLAB_ENV # ← これを追加 - echo $VERSION artifacts: name: "my-chrome-extension-v$VERSION" paths: - dist/
これが該当のMR
やったね