|
|
|
name: Check URLs from changed files
|
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
pull_request:
|
|
|
|
|
|
|
|
permissions:
|
|
|
|
contents: read
|
|
|
|
|
|
|
|
# This allows a subsequently queued workflow run to interrupt previous runs
|
|
|
|
concurrency:
|
|
|
|
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref || github.run_id }}'
|
|
|
|
cancel-in-progress: true
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
check-urls:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
outputs:
|
|
|
|
changed-files: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
|
|
|
# NOTE: tj-actions/changed-files.
|
|
|
|
# For push events you need to include fetch-depth: 0 | 2 depending on your use case.
|
|
|
|
# 0: retrieve all history for all branches and tags
|
|
|
|
# 1: retrieve current commit (by default)
|
|
|
|
# 2: retrieve the preceding commit
|
|
|
|
- name: Determine workflow parameters
|
|
|
|
id: init-params
|
|
|
|
run: |
|
|
|
|
echo "::set-output name=fetch_depth::0";
|
|
|
|
if [ "${{ github.event_name }}" == "pull_request" ]; then
|
|
|
|
echo "::set-output name=fetch_depth::1";
|
|
|
|
fi
|
|
|
|
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
with:
|
|
|
|
fetch-depth: ${{ steps.init-params.outputs.fetch_depth }}
|
|
|
|
|
|
|
|
- name: Get changed files
|
|
|
|
id: changed-files
|
|
|
|
uses: tj-actions/changed-files@v29.0.7
|
|
|
|
with:
|
|
|
|
separator: " "
|
|
|
|
|
|
|
|
- uses: ruby/setup-ruby@v1
|
|
|
|
with:
|
|
|
|
ruby-version: 2.6
|
|
|
|
|
|
|
|
- run: |
|
|
|
|
gem install awesome_bot
|
|
|
|
|
|
|
|
- name: Check each changed file
|
|
|
|
run: |
|
|
|
|
# Set field separator
|
|
|
|
IFS=$' ';
|
|
|
|
|
|
|
|
# Processing loop
|
|
|
|
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
|
|
|
|
echo;
|
|
|
|
echo "::group::Processing file... $file";
|
|
|
|
awesome_bot "$file" --allow-redirect --allow-dupe --allow-ssl || true;
|
|
|
|
echo "::endgroup::";
|
|
|
|
done
|
|
|
|
|
|
|
|
# Unset field separator
|
|
|
|
unset IFS;
|
|
|
|
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: awesomebot-results
|
|
|
|
path: ${{ github.workspace }}/ab-results-*.json
|
|
|
|
|
|
|
|
- name: Generate Summary Report using AwesomeBot results
|
|
|
|
uses: ./.github/actions/awesomebot-gh-summary-action
|
|
|
|
with:
|
|
|
|
ab-root: ${{ github.workspace }}
|
|
|
|
files: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
|
|
separator: " "
|
|
|
|
append-heading: ${{ true }}
|