From 8f5c8b18788de79f6ce20e08e9ea3291ba801249 Mon Sep 17 00:00:00 2001 From: tooomm Date: Wed, 23 Apr 2025 21:13:32 +0200 Subject: [PATCH] CI: Show useful data about token URLs (#192) --- .github/workflows/check_links.yml | 45 +++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/.github/workflows/check_links.yml b/.github/workflows/check_links.yml index 5d2e1f1..83dbf5f 100644 --- a/.github/workflows/check_links.yml +++ b/.github/workflows/check_links.yml @@ -23,8 +23,6 @@ jobs: name: Check image links runs-on: ubuntu-latest - env: - lychee_args: '--no-progress --require-https --cache --max-cache-age 8h --exclude http://www.w3.org' steps: - name: Checkout @@ -39,13 +37,50 @@ jobs: key: cache-lychee-${{ github.sha }} restore-keys: cache-lychee- - # Extract and check URLs directly from token files - - name: Check token art URLs + # Extract picture URLs from tokens.xml + - name: Extract URLs + id: tokens_pic_urls uses: lycheeverse/lychee-action@v2 with: - args: '${{env.lychee_args}} -- tokens.xml' + args: --dump --exclude www.w3.org -- tokens.xml + output: url_list.md + jobSummary: false + + # Check dumped URLs + - name: Check token art URLs + if: steps.tokens_pic_urls.outcome == 'success' + uses: lycheeverse/lychee-action@v2 + with: + args: --no-progress --require-https --cache --max-cache-age 8h -- url_list.md jobSummary: true + # List some helpful stats on missing pictures + - name: List missing image link counts + shell: bash + run: | + echo "❌ **Missing Image Links (master branch)**" >> $GITHUB_STEP_SUMMARY + echo "Token with missing \`set\` element: [![](https://img.shields.io/badge/dynamic/xml?label=&colorB=white&query=count%28%2F%2Fcard%5Bnot%28set%29%5D%29&url=https%3A%2F%2Fraw.githubusercontent.com%2FCockatrice%2FMagic-Token%2Fmaster%2Ftokens.xml)](https://raw.githubusercontent.com/Cockatrice/Magic-Token/master/tokens.xml)" >> $GITHUB_STEP_SUMMARY + echo "Missing picURL attribute (\`\`): [![](https://img.shields.io/badge/dynamic/xml?label=&colorB=white&query=count%28%2F%2Fset%29-count%28%2F%2Fset%5B%40picURL%5D%29&url=https%3A%2F%2Fraw.githubusercontent.com%2FCockatrice%2FMagic-Token%2Fmaster%2Ftokens.xml)](https://raw.githubusercontent.com/Cockatrice/Magic-Token/master/tokens.xml)" >> $GITHUB_STEP_SUMMARY + echo "Empty picURL value (\`\`): [![](https://img.shields.io/badge/dynamic/xml?label=&colorB=white&query=count%28%2F%2Fset%5B%40picURL%3D%22%22%5D%29&url=https%3A%2F%2Fraw.githubusercontent.com%2FCockatrice%2FMagic-Token%2Fmaster%2Ftokens.xml)](https://raw.githubusercontent.com/Cockatrice/Magic-Token/master/tokens.xml)" >> $GITHUB_STEP_SUMMARY + + # Analyse extracted links (1/2) + - name: List duplicated image links + if: steps.tokens_pic_urls.outcome == 'success' + shell: bash + # Remove empty lines | trim trailing integers (Scryfall) | sort | count and list duplicates + run: | + echo "🪞 **Duplicated Image Links**" >> $GITHUB_STEP_SUMMARY + grep . url_list.md | sed 's/\.jpg?.*/.jpg/' | sort | uniq -cd >> $GITHUB_STEP_SUMMARY + + # Analyse extracted links (2/2) + - name: List image hosting sources + if: steps.tokens_pic_urls.outcome == 'success' + shell: bash + # Extract 3rd field (domain name) | remove empty lines | sort | count duplicates and list with numbers | sort descending + run: | + echo "📶 **Image Hosting Statistics**" >> $GITHUB_STEP_SUMMARY + awk -F/ '{print $3}' url_list.md | grep . | sort | uniq -c | sort -nr >> $GITHUB_STEP_SUMMARY + # Always save cache - name: Save lychee cache uses: actions/cache/save@v4