From 6009e5447da421d0b4a0d5ef0e1e0ee07d75b394 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 9 Mar 2025 21:00:10 -0600 Subject: [PATCH] refactor: Modify base64 templates workflow to generate comprehensive blueprint table --- .github/workflows/base64-templates.yml | 56 +++++++++++++------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/base64-templates.yml b/.github/workflows/base64-templates.yml index 62410cc..80010d1 100644 --- a/.github/workflows/base64-templates.yml +++ b/.github/workflows/base64-templates.yml @@ -1,43 +1,38 @@ -name: Generate Base64 for Changed Blueprints +name: Generate Base64 Blueprints Table on: pull_request: branches: - main + push: + branches: + - main jobs: - encode-changed: + encode-and-comment: runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v4 - - name: Get changed blueprints folders - id: changes + - name: Generate base64 for blueprints + id: generate 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 "### 📝 Blueprints Base64 Table" > 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 + echo "You can use the base64 value to import the blueprint into the UI." >> comment.md + echo "
" >> comment.md + echo "🔍 Show all blueprints base64" >> comment.md + echo '' >> comment.md - for dir in $CHANGED_FOLDERS; do - echo "Processing $dir..." + for dir in blueprints/*; do + if [ -d "$dir" ]; then + TEMPLATE_NAME=$(basename "$dir") - COMPOSE_FILE="blueprints/$dir/docker-compose.yml" - TEMPLATE_FILE="blueprints/$dir/template.yml" + COMPOSE_FILE="$dir/docker-compose.yml" + TEMPLATE_FILE="$dir/template.yml" if [ -f "$COMPOSE_FILE" ] && [ -f "$TEMPLATE_FILE" ]; then COMPOSE_CONTENT=$(jq -Rs . < "$COMPOSE_FILE") @@ -46,21 +41,26 @@ jobs: JSON="{\"compose\":$COMPOSE_CONTENT,\"config\":$TEMPLATE_CONTENT}" BASE64_JSON=$(echo -n "$JSON" | base64 -w 0) - echo "#### $dir" >> comment.md + echo "#### $TEMPLATE_NAME" >> 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 + fi + done - echo '
' >> comment.md - fi + echo '
' >> comment.md - name: Post comment to PR uses: marocchino/sticky-pull-request-comment@v2 + if: github.event_name == 'pull_request' with: path: comment.md + + - name: Post comment to commit (fallback) + uses: peter-evans/commit-comment@v3 + if: github.event_name != 'pull_request' + with: + body-path: comment.md