Skip to content

Check for latest commit #852

Check for latest commit

Check for latest commit #852

Workflow file for this run

name: Check for latest commit
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
jobs:
matrix:
runs-on: ubuntu-latest
outputs:
hearts-matrix: "${{ steps.hearts.outputs.matrix }}"
steps:
- name: Checkout kevinboss/heartbeat
uses: actions/checkout@v4
- uses: nahsi/files-to-matrix@v1
id: hearts
with:
files: hearts/**
settings: >-
[
{
"name": "heart",
"level": 1
}
]
check:
runs-on: ubuntu-latest
if: needs.matrix.outputs.hearts-matrix
needs: matrix
strategy:
fail-fast: false
max-parallel: 1
matrix:
hearts: "${{ fromJSON(needs.matrix.outputs.hearts-matrix) }}"
steps:
- name: Checkout kevinboss/heartbeat
uses: actions/checkout@v4
with:
path: 'heartbeat'
- name: Pull
run: git -C heartbeat pull
- name: Read heart
id: heart
uses: the-coding-turtle/ga-yaml-parser@v0.1.2
with:
file: 'heartbeat/hearts/${{ matrix.hearts.heart }}'
- name: Checkout ${{ steps.heart.outputs.owner }}/${{ steps.heart.outputs.name }}
uses: actions/checkout@v4
with:
repository: '${{ steps.heart.outputs.owner }}/${{ steps.heart.outputs.name }}'
path: 'repo'
- name: Read latest commit date
id: latest-commit-date
run: echo "data=$(git -C repo log -1 --date=format:'%Y-%m-%dT%H:%M:%SZ' --format='%ad')" >> $GITHUB_OUTPUT
- name: Read latest
id: latest
uses: KJ002/read-yaml@1.6
with:
file: 'heartbeat/beats.yaml'
key-path: '["${{ steps.heart.outputs.owner }}", "${{ steps.heart.outputs.name }}"]'
- name: Check if latest must be updated
id: latest-must-be-updated
run: |
if [[ ${{ steps.latest.outputs.data }} == "" ]] ; then
echo "flag=true" >> $GITHUB_OUTPUT
elif [[ ${{ steps.latest.outputs.data }} < "${{ steps.latest-commit-date.outputs.data }}" ]] ; then
echo "flag=true" >> $GITHUB_OUTPUT
else
echo "flag=false" >> $GITHUB_OUTPUT
fi
- name: Update latest
if: ${{ steps.latest-must-be-updated.outputs.flag == 'true' }}
uses: endaft/action-yamler@v1.1.1
with:
file: 'heartbeat/beats.yaml'
path: ${{ steps.heart.outputs.owner }}.${{ steps.heart.outputs.name }}
set: ${{ steps.latest-commit-date.outputs.data }}
get: false
append: false
- name: Pull
run: git -C heartbeat pull
- name: Commit updated files
uses: stefanzweifel/git-auto-commit-action@v5.0.1
with:
repository: 'heartbeat/'
commit_message: 'Updated ${{ steps.heart.outputs.owner }}.${{ steps.heart.outputs.name }} in beat.yaml'