-
Notifications
You must be signed in to change notification settings - Fork 1
74 lines (59 loc) · 2.17 KB
/
update_csv.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
name: Daily CSV Update
on:
schedule:
- cron: '0 8 * * *' # Runs every day at midnight (UTC)
workflow_dispatch:
jobs:
update-csv:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Download New CSV
run: |
if curl -o data/new-data.csv https://catalogue.data.gov.bc.ca/dataset/4cc207cc-ff03-44f8-8c5f-415af5224646/resource/9a9f14e1-03ea-4a11-936a-6e77b15eeb39/download/childcare_locations.csv; then
echo "CSV download successful."
else
echo "CSV download failed."
exit 1
fi
- name: Check CSV File Size
id: check-csv
run: |
if [ -s data/new-data.csv ]; then
echo "CSV file is not empty."
else
echo "CSV file is empty."
exit 1
fi
- name: Check for Differences
id: check-differences
run: |
if ! diff -q data/new-data.csv data/childcare_locations.csv; then
echo "CSV files are different."
echo "DIFFERENT_CSV=true" >> $GITHUB_ENV
else
echo "CSV files are the same. Skipping commit."
echo "DIFFERENT_CSV=false" >> $GITHUB_ENV
fi
- name: Overwrite CSV
if: steps.check-csv.outcome == 'success' && env.DIFFERENT_CSV == 'true'
run: |
mv data/new-data.csv data/childcare_locations.csv
- name: Commit and Push Changes
if: steps.check-csv.outcome == 'success' && env.DIFFERENT_CSV == 'true'
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "actions@github.com"
timestamp=$(date +'%Y%m%d%H%M%S')
branch_name="update-csv-$timestamp"
git checkout -b "$branch_name"
git add data/childcare_locations.csv
git commit -m "Update CSV file"
git push origin "$branch_name"
git checkout main
git merge --no-ff "$branch_name"
git push origin main
# delete the temporary branch
git branch -d "$branch_name"
git push origin --delete "$branch_name"