feat: update README badge automatically (#108)
This commit is contained in:
parent
b0f3a2d2ae
commit
988ecaa42f
|
@ -0,0 +1,79 @@
|
||||||
|
name: Update Badge
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_run:
|
||||||
|
workflows:
|
||||||
|
- libp2p multidimensional interop test
|
||||||
|
types:
|
||||||
|
- completed
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
env:
|
||||||
|
BADGE_NAME: Interop Dashboard
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-badge:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- id: workflow
|
||||||
|
env:
|
||||||
|
WORKFLOW_PATH: ${{ github.event.workflow.path }}
|
||||||
|
run: echo "name=${WORKFLOW_PATH#.github/workflows/}" >> $GITHUB_OUTPUT
|
||||||
|
- uses: pl-strflt/job-summary-url-action@v1
|
||||||
|
id: metadata
|
||||||
|
with:
|
||||||
|
workflow: ${{ steps.workflow.outputs.name }}
|
||||||
|
run_id: ${{ github.event.workflow_run.id }}
|
||||||
|
run_attempt: ${{ github.event.workflow_run.run_attempt }}
|
||||||
|
job: latest
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- id: update
|
||||||
|
uses: actions/github-script@v6
|
||||||
|
env:
|
||||||
|
BADGE_URL: ${{ github.event.workflow.badge_url }}
|
||||||
|
SUMMARY_URL: ${{ steps.metadata.outputs.job_summary_url }}
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const fs = require('fs')
|
||||||
|
|
||||||
|
const badgeName = process.env.BADGE_NAME
|
||||||
|
const badgeURL = process.env.BADGE_URL
|
||||||
|
const refName = process.env.GITHUB_REF_NAME
|
||||||
|
const summaryURL = process.env.SUMMARY_URL
|
||||||
|
|
||||||
|
const searchValue = new RegExp(`\\[!\\[${badgeName}\\]\\(.*\\)\\]\\(.*\\)`, 'g')
|
||||||
|
const replaceValue = `[![${badgeName}](${badgeURL}?branch=${refName})](${summaryURL})`
|
||||||
|
|
||||||
|
console.log(`Searching for: ${searchValue}`)
|
||||||
|
console.log(`To replace it with: ${replaceValue}`)
|
||||||
|
|
||||||
|
const readme = fs.readFileSync('README.md').toString()
|
||||||
|
const updatedReadme = readme.replace(searchValue, replaceValue)
|
||||||
|
|
||||||
|
if (readme !== updatedReadme) {
|
||||||
|
console.log('Updating README')
|
||||||
|
fs.writeFileSync('README.md', updatedReadme)
|
||||||
|
return true
|
||||||
|
} else {
|
||||||
|
console.log('README does not need to be updated')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
# https://github.com/orgs/community/discussions/26560
|
||||||
|
- if: steps.update.outputs.result == 'true'
|
||||||
|
run: |
|
||||||
|
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
- if: steps.update.outputs.result == 'true'
|
||||||
|
run: |
|
||||||
|
git add README.md
|
||||||
|
git commit -m 'chore: update the link to the interop dashboard [skip ci]'
|
||||||
|
git push
|
Loading…
Reference in New Issue