free-programming-books/.github/workflows/check-urls.yml
David Ordás 44dd203d6c
security: set-output cmd deprecated. Use $GITHUB_OUTPUT env file (#9287)
* security: `set-output` cmd deprecated. Use `$GITHUB_OUTPUT` env file

To avoid untrusted logged data to use `save-state` and `set-output` workflow commands without the intention of the workflow author we have introduced a new set of environment files to manage state and output.

Starting 1st June 2023 workflows using `save-state` or `set-output` commands via stdout will fail with an error.

https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

* chore: apply fix found at actions/stale#859

* test: fixing report escapes

* test: fixing report escapes

* test: fixing report escapes

* test: fixing report escapes

* test: fixing report escapes
2023-02-23 10:06:07 -05:00

82 lines
2.3 KiB
YAML

name: Check URLs from changed files
on:
push:
pull_request:
permissions:
contents: read
# This allows a subsequently queued workflow run to interrupt/wait for previous runs
concurrency:
group: '${{ github.workflow }} @ ${{ github.run_id }}'
cancel-in-progress: false # true = interrupt, false = wait
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 only current commit (by default)
# 2: retrieve until the preceding commit
- name: Determine workflow parameters
id: init-params
run: |
echo "fetch_depth=0" >> $GITHUB_OUTPUT
if [ "${{ github.event_name }}" == "pull_request" ]; then
echo "fetch_depth=0" >> $GITHUB_OUTPUT
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@v35.5.5
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 }}