でpackage.jsonの値を取得する私のnodejsアプリケーションにgitLab CIを使用しています。私のYMLファイルでは、ドッカー画像を作成するためにスクリプトを呼び出す必要があります。しかし、latest
を使用する代わりに、現在のバージョンのプロジェクトを使用する必要があります。gitLab CI YML
このバージョンの値は、リポジトリのpackage.json
ファイルにあります。
latest
を現在のバージョンで置き換えるpackage.jsonファイルのバージョン値を読み取ることはできますか?あなたは引数でこのスクリプトを実行し
#!/bin/sh
args=("[email protected]")
CI_REGISTRY_IMAGE=${args[0]}
PACKAGE_VERSION=$(cat package.json \
| grep version \
| head -1 \
| awk -F: '{ print $2 }' \
| sed 's/[",]//g' \
| tr -d '[[:space:]]')
CONTAINER_RELEASE_IMAGE=$CI_REGISTRY_IMAGE\:$PACKAGE_VERSION
cd /opt/core/bundle && docker build -t $CONTAINER_RELEASE_IMAGE .
docker push $CONTAINER_RELEASE_IMAGE
を次のようにシェルスクリプトを作成し、
あなたのソース管理にこれを確認することができ、残念ながらgitlab.yml
に純粋にこれを行うことができない場合があります
# ...
variables:
CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:latest # need version value instead of latest
build:
stage: build
script:
# ...
- cd /opt/core/bundle && docker build -t $CONTAINER_RELEASE_IMAGE .
- docker push $CONTAINER_RELEASE_IMAGE
ます。また、空白をトリムする必要があります。https://gist.github.com/DarrenN/8c6a5b969481725a4413#gistcomment-1678696 – user3142695