better logic for directory render
All checks were successful
renovate / renovate (push) Successful in 1m15s

This commit is contained in:
2025-12-02 18:10:07 -06:00
parent 2b888046eb
commit 7d38102cff

View File

@@ -64,42 +64,44 @@ jobs:
run: | run: |
cd ${MAIN_DIR} cd ${MAIN_DIR}
echo ">> Check for changes ..." RENDER_DIR=()
GIT_DIFF=$(git diff --name-only ${{ gitea.event.before }}..HEAD | xargs -I {} dirname {} | sort -u | grep "clusters/cl01tl/helm/")
CHANGED_DIR=()
if [ "$GITHUB_EVENT_NAME" == "workflow_dispatch" ]; then if [ "$GITHUB_EVENT_NAME" == "workflow_dispatch" ]; then
echo ">> Triggered on dispatch, will check all paths .." echo ">> Triggered on dispatch, will check all paths .."
CHANGED_DIR=$(ls clusters/cl01tl/helm/) RENDER_DIR+=$(ls clusters/cl01tl/helm/)
elif [ -n $GIT_DIFF ]; then
echo ">> Changes detected:"
echo "$GIT_DIFF"
for path in $GIT_DIFF; do
CHANGED_DIR+=$(echo "$path" | awk -F '/' '{print $4}')
done
else else
echo ">> No changes detected, skipping rendering" echo ">> Checking for changes ..."
GIT_DIFF=$(git diff --name-only ${{ gitea.event.before }}..HEAD | xargs -I {} dirname {} | sort -u | grep "clusters/cl01tl/helm/")
if [ -n $GIT_DIFF ]; then
echo ">> Changes detected:"
echo "$GIT_DIFF"
for path in $GIT_DIFF; do
RENDER_DIR+=$(echo "$path" | awk -F '/' '{print $4}')
done
else
echo ">> No changes detected"
fi
fi fi
echo ">> Changed Directories:" echo ">> Directories to Render:"
echo "$(printf "%s\n" "$CHANGED_DIR" | sort -u)" echo "$(printf "%s\n" "$RENDER_DIR" | sort -u)"
echo "changes-detected=true" >> $GITEA_OUTPUT echo "changes-detected=true" >> $GITEA_OUTPUT
echo "changed-dir=$(printf "%s\n" "$CHANGED_DIR" | sort -u)" >> $GITEA_OUTPUT echo "render-dir=$(printf "%s\n" "$RENDER_DIR" | sort -u)" >> $GITEA_OUTPUT
- name: Add Repositories - name: Add Repositories
if: steps.check-dir-changes.outputs.changes-detected == 'true' if: steps.check-dir-changes.outputs.changes-detected == 'true'
env: env:
CHANGED_DIR: ${{ steps.check-dir-changes.outputs.changed-dir }} RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: | run: |
cd ${MAIN_DIR} cd ${MAIN_DIR}
echo ">> Adding repositories for chart dependencies ..." echo ">> Adding repositories for chart dependencies ..."
for dir in ${CHANGED_DIR}; do for dir in ${RENDER_DIR}; do
helm dependency list --max-col-width 120 ${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir 2> /dev/null \ helm dependency list --max-col-width 120 ${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir 2> /dev/null \
| tail +2 | head -n -1 \ | tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \ | awk '{ print "helm repo add " $1 " " $3 }' \
@@ -109,13 +111,13 @@ jobs:
- name: Remove Changed Manifest Files - name: Remove Changed Manifest Files
if: steps.check-dir-changes.outputs.changes-detected == 'true' if: steps.check-dir-changes.outputs.changes-detected == 'true'
env: env:
CHANGED_DIR: ${{ steps.check-dir-changes.outputs.changed-dir }} RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: | run: |
cd ${MANIFEST_DIR} cd ${MANIFEST_DIR}
echo ">> Remove manfiest files and rebuild from source ..." echo ">> Remove manfiest files and rebuild from source ..."
for dir in ${CHANGED_DIR}; do for dir in ${RENDER_DIR}; do
chart_path=${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$dir chart_path=${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$dir
echo ">> Removing from $chart_path ..." echo ">> Removing from $chart_path ..."
@@ -126,13 +128,13 @@ jobs:
id: render-manifests id: render-manifests
if: steps.check-dir-changes.outputs.changes-detected == 'true' if: steps.check-dir-changes.outputs.changes-detected == 'true'
env: env:
CHANGED_DIR: ${{ steps.check-dir-changes.outputs.changed-dir }} RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: | run: |
cd ${MAIN_DIR} cd ${MAIN_DIR}
echo ">> Rendering Manifests ..." echo ">> Rendering Manifests ..."
for dir in ${CHANGED_DIR}; do for dir in ${RENDER_DIR}; do
chart_path=${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir chart_path=${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir
chart_name=$(basename "$chart_path") chart_name=$(basename "$chart_path")