CI: Show useful data about token URLs #462
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Picture Health | |
on: | |
pull_request: | |
# Default events are opened, synchronized or reopened | |
workflow_dispatch: | |
schedule: | |
# Runs at the start of each month (UTC) | |
- cron: '0 0 1 * *' | |
jobs: | |
check_urls: | |
# Do not run the scheduled workflow on forks | |
if: ( github.event_name != 'schedule' || github.repository_owner == 'Cockatrice' ) | |
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 | |
uses: actions/checkout@v3 | |
# Restore cache | |
- name: Restore lychee cache | |
id: restore-cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: .lycheecache | |
key: cache-lychee-${{ github.sha }} | |
restore-keys: cache-lychee- | |
# Extract and check URLs directly from token files (checking dumped file did not work) | |
- name: Check token art URLs | |
uses: lycheeverse/lychee-action@v1 | |
with: | |
args: '${{env.lychee_args}} -- tokens.xml' | |
fail: true | |
jobSummary: true | |
# Extract picture URLs from tokens.xml | |
- name: Extract URLs | |
id: tokens_pic_urls | |
uses: lycheeverse/lychee-action@v1 | |
with: | |
args: '--dump --exclude www.w3.org -- tokens.xml' | |
output: lychee/out.md | |
fail: true | |
jobSummary: false | |
# 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 . lychee/out.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}' lychee/out.md | grep . | sort | uniq -c | sort -nr >> $GITHUB_STEP_SUMMARY | |
# Always save cache | |
- name: Save lychee cache | |
uses: actions/cache/save@v3 | |
if: always() | |
with: | |
path: .lycheecache | |
key: ${{ steps.restore-cache.outputs.cache-primary-key }} |