Skip to content

πŸ”— Link Checker #83

πŸ”— Link Checker

πŸ”— Link Checker #83

Workflow file for this run

name: πŸ”— Link Checker
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: "0 0 * * 5"
workflow_dispatch:
jobs:
create_matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: checkout
uses: actions/checkout@v3
- id: set-matrix
run: |
printf "matrix={\"include\":[" > ./matrix_file.txt
cat ./sites.txt | while read LINE; do printf "{\"url\":\"%s\"}," $LINE >> ./matrix_file.txt ;done
printf "]}" >> ./matrix_file.txt
cat ./matrix_file.txt >> $GITHUB_OUTPUT
cat ./matrix_file.txt
build:
needs: create_matrix
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.create_matrix.outputs.matrix) }}
steps:
- name: Set up Go βš™οΈ
uses: actions/setup-go@v4
with:
go-version: '1.22.0'
- name: Install Muffet πŸ—οΈ
run: |
export GO111MODULE=on
go install github.com/raviqqe/muffet/v2@latest
- name: Audit πŸš€
continue-on-error: true
run: |
muffet --skip-tls-verification --exclude=google.com --buffer-size=8192 --max-connections=10 "${{ matrix.url }}" > ../results.txt || true
- name: Checkout πŸ›’
uses: actions/checkout@v3
with:
ref: "master"
- name: Move 🚚
run: |
mv ../results.txt ./results/links_$(basename ${{ matrix.url }}).txt
- name: Website List - Readme πŸ“„
run: |
awk 'NR==FNR{a[NR]=$0;next}/^# Website List$/{print;for(i in a)print a[i] RS;while(getline line && line !~ /^# Tests$/);print line;while(getline)print}' sites.txt readme.md > temp.md && mv temp.md readme.md
- name: Results - Readme πŸ“„
run: |
ls ./results | grep -v '^readme\.md$' > results.txt
awk '/# Results/{print; while(getline < "results.txt") { printf("- [%s](./results/%s)\n", $0, $0); } f=1; next} f && /^# Tests$/{f=0} !f' readme.md > temp.md && mv temp.md readme.md
rm results.txt
- name: Commit πŸ’
uses: EndBug/add-and-commit@v9
with:
author_name: Github Action
message: "Adding link_checker results for ${{ matrix.url }}"