69 lines
1.8 KiB
YAML
69 lines
1.8 KiB
YAML
stages:
|
|
- version_update
|
|
|
|
version_update:
|
|
image: harbor.exem-oss.org/test/test-runner:latest
|
|
stage: version_update
|
|
variables:
|
|
file1: "./old/old_version.json"
|
|
file2: "./new_version.json"
|
|
git_token: $TOKEN
|
|
git_user: $USER
|
|
git_url: $URL
|
|
before_script: |
|
|
git config --global user.email "sa_8001@ex-em.com"
|
|
git config --global user.name "변정훈"
|
|
|
|
git clone https://${git_user}:${git_token}@${git_url} ./old
|
|
|
|
script: |
|
|
jq_parse() {
|
|
jq -r '.[] | "\(.name):\(.version)"' "$1"
|
|
}
|
|
|
|
declare -A old_version
|
|
while IFS=: read -r name version; do
|
|
old_version["$name"]=$version
|
|
done < <(jq_parse "$file1")
|
|
|
|
declare -a different_names
|
|
declare -a different_versions
|
|
|
|
while IFS=: read -r name version; do
|
|
if [[ "${old_version["$name"]}" != "$version" ]]; then
|
|
different_names+=("$name")
|
|
different_versions+=("$version")
|
|
fi
|
|
done < <(jq_parse "$file2")
|
|
|
|
if [ ${#different_names[@]} -gt 0 ]; then
|
|
echo "아래 항목에 대해서 CI 작업을 시작합니다!"
|
|
for index in "${!different_names[@]}"; do
|
|
name="${different_names[$index]}"
|
|
version="${different_versions[$index]}"
|
|
echo "$name:$version"
|
|
|
|
curl --request POST \
|
|
--form "token=${git_token}" \
|
|
--form "ref=main" \
|
|
--form "variables[TRIGGERED_BY]=sa_8001" \
|
|
--form "variables[TRIGGER_NAME]=$name" \
|
|
--form "variables[VER]=$version" \
|
|
"https://gitlab.com/api/v4/projects/$name/trigger/pipeline"
|
|
|
|
done
|
|
|
|
cp $file2 $file1
|
|
cd ./old
|
|
ls -l
|
|
git add ./
|
|
git commit -m "버전 관리"
|
|
git push origin main
|
|
|
|
else
|
|
echo "버전이 변한 애플리케이션이 없습니다."
|
|
fi
|
|
|
|
except:
|
|
variables:
|
|
- $CI_COMMIT_MESSAGE =~ /CI 수정/ |