name: Generate Base64 for Changed Blueprints on: pull_request: branches: - main jobs: encode-changed: runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v4 - name: Get changed blueprints folders id: changes run: | CHANGED=$(git diff --name-only origin/${{ github.event.pull_request.base.ref }} | grep '^blueprints/' | cut -d/ -f2 | sort -u) echo "folders=$(echo $CHANGED | jq -R -s -c 'split(" ") | map(select(length > 0))')" >> $GITHUB_OUTPUT - name: Generate base64 for changed blueprints run: | CHANGED_FOLDERS=$(echo '${{ steps.changes.outputs.folders }}' | jq -r '.[]') echo "### 📝 Base64 for changed blueprints" > comment.md echo '' >> comment.md if [ -z "$CHANGED_FOLDERS" ]; then echo "✅ No blueprints changed." >> comment.md else echo "
" >> comment.md echo "🔍 Show base64" >> comment.md echo '' >> comment.md for dir in $CHANGED_FOLDERS; do echo "Processing $dir..." COMPOSE_FILE="blueprints/$dir/docker-compose.yml" TEMPLATE_FILE="blueprints/$dir/template.yml" if [ -f "$COMPOSE_FILE" ] && [ -f "$TEMPLATE_FILE" ]; then COMPOSE_CONTENT=$(jq -Rs . < "$COMPOSE_FILE") TEMPLATE_CONTENT=$(jq -Rs . < "$TEMPLATE_FILE") JSON="{\"compose\":$COMPOSE_CONTENT,\"config\":$TEMPLATE_CONTENT}" BASE64_JSON=$(echo -n "$JSON" | base64 -w 0) echo "#### $dir" >> comment.md echo '' >> comment.md echo '```' >> comment.md echo "$BASE64_JSON" >> comment.md echo '```' >> comment.md echo '' else echo "❌ Missing files in $dir" >> comment.md fi done echo '
' >> comment.md fi - name: Post comment to PR uses: marocchino/sticky-pull-request-comment@v2 with: path: comment.md