diff --git a/.gitea/workflows/image-update-and-release.yaml b/.gitea/workflows/image-update-and-release.yaml index 1c5563b..dac211c 100644 --- a/.gitea/workflows/image-update-and-release.yaml +++ b/.gitea/workflows/image-update-and-release.yaml @@ -159,7 +159,9 @@ jobs: if: steps.check.outputs.update_needed == 'true' id: update_values run: | - # バックアップを作成 + set -e + echo "Updating values.yaml..." + cp values.yaml values.yaml.bak # 共有変数から最新バージョンを取得 @@ -168,22 +170,29 @@ jobs: NGINX_LATEST="${{ steps.nginx.outputs.version }}" # 現在のバージョンを取得(Chart.yaml更新判定用) - CURRENT_WP_BASE=$(grep -A 1 'wordpress:' values.yaml | grep 'tag:' | sed 's/.*tag: "\([^-]*\).*/\1/') - CURRENT_NGINX=$(grep -A 1 'nginx:' values.yaml | grep 'tag:' | sed 's/.*tag: "\(.*\)".*/\1/') + CURRENT_WP=$(grep -A 3 'wordpress:' values.yaml | grep 'tag:' | awk -F'"' '{print $2}') + CURRENT_NGINX=$(grep -A 3 'nginx:' values.yaml | grep 'tag:' | awk -F'"' '{print $2}') + CURRENT_WP_BASE=$(echo "$CURRENT_WP" | cut -d'-' -f1) echo "Current versions:" - echo " WordPress: $CURRENT_WP_BASE" + echo " WordPress: $CURRENT_WP" echo " Nginx: $CURRENT_NGINX" echo "" echo "Latest versions:" - echo " WordPress: $WP_BASE ($WP_LATEST)" + echo " WordPress: $WP_LATEST" echo " Nginx: $NGINX_LATEST" - # WordPressのtagを更新(より単純で確実な方法) - sed -i "s|tag: \"[0-9.]*-php[0-9.]*-fpm-alpine\"|tag: \"$WP_LATEST\"|" values.yaml + # WordPress更新 + if [ "$CURRENT_WP" != "$WP_LATEST" ]; then + sed -i "s|tag: \"${CURRENT_WP}\"|tag: \"${WP_LATEST}\"|g" values.yaml + echo "WordPress updated: $CURRENT_WP -> $WP_LATEST" + fi - # Nginxのtagを更新(より単純で確実な方法) - sed -i "s|tag: \"[0-9.]*-alpine-perl\"|tag: \"$NGINX_LATEST\"|" values.yaml + # Nginx更新 + if [ "$CURRENT_NGINX" != "$NGINX_LATEST" ]; then + sed -i "s|tag: \"${CURRENT_NGINX}\"|tag: \"${NGINX_LATEST}\"|g" values.yaml + echo "Nginx updated: $CURRENT_NGINX -> $NGINX_LATEST" + fi # 変更内容を表示 echo "" @@ -193,14 +202,14 @@ jobs: # 実際に変更されたか確認 if diff -q values.yaml.bak values.yaml > /dev/null 2>&1; then echo "INFO: No changes were made to values.yaml (versions already up to date)" - cat values.yaml | grep -A 5 "image:" echo "chart_version_update_needed=false" >> $GITHUB_OUTPUT else echo "Changes detected in values.yaml" # WordPressバージョンが更新されたか判定(Chart.yaml更新の判定用) - if [ "$CURRENT_WP_BASE" != "$WP_BASE" ]; then - echo "WordPress version changed: $CURRENT_WP_BASE -> $WP_BASE" + WP_NEW_BASE=$(echo "$WP_LATEST" | cut -d'-' -f1) + if [ "$CURRENT_WP_BASE" != "$WP_NEW_BASE" ]; then + echo "WordPress version changed: $CURRENT_WP_BASE -> $WP_NEW_BASE" echo "chart_version_update_needed=true" >> $GITHUB_OUTPUT else echo "INFO: WordPress version unchanged - only other images updated" @@ -210,7 +219,7 @@ jobs: echo "" echo "=== Updated values.yaml (image section) ===" - grep -A 5 "^image:" values.yaml + grep -A 10 "^image:" values.yaml - name: Increment chart version if: steps.update_values.outputs.chart_version_update_needed == 'true'