Skip to content

Regularly Scheduled GitHub Actions πŸš€ Diff Workflow #42

Regularly Scheduled GitHub Actions πŸš€ Diff Workflow

Regularly Scheduled GitHub Actions πŸš€ Diff Workflow #42

Workflow file for this run

name: GitHub Actions Diff
run-name: Regularly Scheduled GitHub Actions πŸš€ Diff Workflow
on:
push:
schedule:
- cron: '39 9 * * *'
- cron: '39 9 * * *'
jobs:
Diff-ads-txt:
runs-on: ubuntu-latest
outputs:
output1: ${{ steps.diff-adstxt-files.outputs.DIFF_OUT }}
steps:
- run: echo "πŸŽ‰ The job was automatically triggered by scheduled cron event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "πŸ”Ž Attempting to diff url contents"
- name: Diff
#continue-on-error: true
id: diff-adstxt-files
# https://trstringer.com/github-actions-multiline-strings/
run: |
DIFF_OUT=$(cat << EOF
`diff --suppress-common-lines <(sed 's/\r//g' <(curl https://config.playwire.com/dyn_ads/1025030/74482/ads.txt)) <(sed 's/\r//g' <(curl https://pvpivs.com/ads.txt))`
EOF
)
echo "DIFF_OUT<<EOF" >> $GITHUB_OUTPUT
echo "$DIFF_OUT" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
diff --suppress-common-lines <(sed 's/\r//g' <(curl https://config.playwire.com/dyn_ads/1025030/74482/ads.txt)) <(sed 's/\r//g' <(curl https://pvpivs.com/ads.txt))
- run: echo "πŸ’‘ Diff completed, diff outcome is ${{ steps.diff-adstxt-files.outcome }}."
- run: echo "🍏 This job's status is ${{ job.status }}." #due to continue-on-error=true."
Diff-status:
if: failure()
needs: Diff-ads-txt
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- run: echo "The diff failed with:"
- run: echo "${{needs.Diff-ads-txt.outputs.output1}}"
- run: echo "Proceeding to replace ads.txt..."
# https://stackoverflow.com/a/58393457
- uses: actions/checkout@v3
- name: Get Updated ads.txt file
run: curl https://config.playwire.com/dyn_ads/1025030/74482/ads.txt > ads.txt
- name: Commit ads.txt and submit PR
run: |
echo "Creating PR for ads.txt in gh-pages"
git config --global user.name 'DeathbyToast'
git config --global user.email 'alex.gronbach@gmail.com'
git checkout -b gh-pages
git commit --branch -am "Automated ads.txt update"
gh pr create --title "Automated ads.txt update" --body "Ensuring ads.txt is up to date" --head "gh-pages" --base "gh-pages"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: echo "🍏 This job's status is ${{ job.status }}."