Skip to content

Commit 12a61a1

Browse files
authored
Update check_and_update_json_date.yml
1 parent d186557 commit 12a61a1

File tree

1 file changed

+41
-15
lines changed

1 file changed

+41
-15
lines changed
Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,59 @@
1-
name: Update Date Created in PR
1+
name: Update date_created in JSON files
22

33
on:
4+
# Dieser Trigger wird für das Öffnen von PRs sowie für das Aktualisieren von offenen PRs verwendet
45
pull_request:
5-
paths:
6-
- '*.json'
76
types: [opened, synchronize]
8-
workflow_dispatch:
7+
schedule:
8+
# Dieser Trigger wird 4x am Tag ausgelöst, um sicherzustellen, dass das Datum aktualisiert wird
9+
- cron: "0 0,6,12,18 * * *" # Führt alle 6 Stunden aus
910

1011
jobs:
1112
update-date:
1213
runs-on: ubuntu-latest
1314

1415
steps:
15-
- name: Checkout PR branch
16+
- name: Checkout repository
1617
uses: actions/checkout@v4
17-
with:
18-
ref: ${{ github.head_ref }}
1918

2019
- name: Install yq
2120
run: |
22-
curl -sSL https://github.com/mikefarah/yq/releases/download/v4.18.1/yq_linux_amd64 -o /usr/local/bin/yq
23-
chmod +x /usr/local/bin/yq
21+
sudo apt-get update
22+
sudo apt-get install -y yq
2423
25-
- name: Update date_created in JSON
24+
- name: Set the current date
25+
id: set_date
26+
run: echo "TODAY=$(date -u +%Y-%m-%d)" >> $GITHUB_ENV
27+
28+
- name: Check for changes in PR
2629
run: |
27-
TODAY=$(date -u +%Y-%m-%d)
28-
yq e '.date_created = strftime("%Y-%m-%d")' -i your_file.json
30+
# Hole den PR-Branch
31+
PR_BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
32+
git fetch origin $PR_BRANCH
33+
34+
# Liste alle JSON-Dateien im PR auf, die geändert wurden
35+
CHANGED_JSON_FILES=$(git diff --name-only origin/main...$PR_BRANCH | grep '.json')
36+
37+
if [ -z "$CHANGED_JSON_FILES" ]; then
38+
echo "No JSON files changed in this PR."
39+
exit 0
40+
fi
2941
30-
- name: Commit changes if necessary
42+
# Gehe alle geänderten JSON-Dateien durch und aktualisiere das Datum
43+
for file in $CHANGED_JSON_FILES; do
44+
echo "Updating date_created in $file"
45+
# Setze das aktuelle Datum
46+
yq eval ".date_created = \"${{ env.TODAY }}\"" -i "$file"
47+
git add "$file"
48+
done
49+
50+
- name: Commit and push changes
3151
run: |
32-
git status
33-
git diff --quiet || (git commit -m "Update date_created to $TODAY" && git push origin ${{ github.head_ref }})
52+
# Prüfe, ob es Änderungen gibt und committe sie
53+
git config user.name "json-updater-bot"
54+
git config user.email "github-actions[bot]@users.noreply.github.com"
55+
56+
git commit -m "Update date_created to ${{ env.TODAY }}" || echo "No changes to commit"
57+
58+
# Push zurück in den PR-Branch
59+
git push origin $PR_BRANCH

0 commit comments

Comments
 (0)