awesome-ipfs/.github/workflows/broken_link_cron.yml
Russell Dempsey dd28c19ba7
fix: broken-links workflow (#433)
* fix: broken-links workflow

* fix: trim bash var

* fix: string comparison

* fix: github action if condition syntax

* debugging

* debugging: gh action showing 1 changed file.. what is it?

* fix: only count changed data files for scheduled broken link PRs
2022-09-16 09:28:26 -07:00

91 lines
3.0 KiB
YAML

name: Open a PR to remove broken links on a schedule
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
check-for-broken-links:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 13
- uses: ipfs/aegir/actions/cache-node-modules@master
with:
directories: |
README.md
build: |
npm run build:readme
cache_name: readme
- name: Set up Ruby 3.1.2
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.1.2
- name: Install and run awesome_bot
run: |
gem install awesome_bot
awesome_bot --allow 429 --allow-redirect --allow-dupe --allow-ssl -w ipfs.io README.md || echo
- name: Remove broken links
id: remove-broken-links
run: |
node scripts/remove-broken-links.js
echo "Changed files:"
git ls-files -m
changed_data_files_count=$(git ls-files -m data | wc -l | tr -d ' ')
echo "changed_data_files_count='$changed_data_files_count'"
echo "::set-output name=changed_files::$changed_data_files_count"
- uses: stefanzweifel/git-auto-commit-action@49620cd3ed21ee620a48530e81dba0d139c9cb80
if: steps.remove-broken-links.outputs.changed_data_files_count > 0
with:
# Optional. Commit message for the created commit.
# Defaults to "Apply automatic changes"
commit_message: "chore: Remove broken links"
# Optional. Local and remote branch name where commit is going to be pushed
# to. Defaults to the current branch.
# You might need to set `create_branch: true` if the branch does not exist.
branch: remove-broken-links-${{ github.run_id }}
commit_options: '--no-verify --signoff'
# Optional glob pattern of files which should be added to the commit
# Defaults to all (.)
# See the `pathspec`-documentation for git
# - https://git-scm.com/docs/git-add#Documentation/git-add.txt-ltpathspecgt82308203
# - https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefpathspecapathspec
file_pattern: data/*
repository: .
add_options: '-A'
push_options: '--force'
skip_dirty_check: true
skip_fetch: true
skip_checkout: true
disable_globbing: true
create_branch: true
- name: pull-request
if: steps.remove-broken-links.outputs.changed_data_files_count > 0
uses: repo-sync/pull-request@65785d95a5a466e46a9d0708933a3bd51bbf9dde
with:
source_branch: "remove-broken-links-${{ github.run_id }}"
destination_branch: "master"
pr_title: "chore: Remove broken links"
pr_body: "Automated PR created by .github/workflows/broken_link_cron.yml"
pr_label: "kind/maintenance"
pr_draft: false
pr_allow_empty: false
github_token: ${{ secrets.GITHUB_TOKEN }}