Skip to content

Commit 9dca788

Browse files
authored
Create test.yml
1 parent 6b2ac68 commit 9dca788

File tree

1 file changed

+149
-0
lines changed

1 file changed

+149
-0
lines changed

.github/workflows/test.yml

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
name: Update CKAN Extensions Metadata
2+
on:
3+
schedule:
4+
# Runs every Sunday at 2:00 AM UTC
5+
- cron: '0 2 * * 0'
6+
workflow_dispatch:
7+
# Allows manual triggering from GitHub UI
8+
9+
env:
10+
GITHUB_TOKEN: ${{ secrets.GH_METADATA_TOKEN }}
11+
CKAN_API_KEY: ${{ secrets.CKAN_API_KEY }}
12+
13+
jobs:
14+
update-metadata:
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout repository
19+
uses: actions/checkout@v4
20+
21+
- name: Set up Python
22+
uses: actions/setup-python@v4
23+
with:
24+
python-version: '3.9'
25+
cache: 'pip'
26+
27+
- name: Install dependencies
28+
run: |
29+
python -m pip install --upgrade pip
30+
pip install -r requirements.txt
31+
32+
- name: Step 1 - Extract GitHub URLs from CKAN
33+
run: |
34+
echo "=== STEP 1: Extracting GitHub URLs from CKAN ==="
35+
python 1getURL.py
36+
echo "✓ URL extraction completed"
37+
38+
# Check if output file was created
39+
if [ -f "url_list.csv" ]; then
40+
echo "✓ url_list.csv created successfully"
41+
wc -l url_list.csv
42+
else
43+
echo "✗ url_list.csv not found"
44+
exit 1
45+
fi
46+
47+
- name: Step 2 - Fetch Dynamic Metadata from GitHub
48+
run: |
49+
echo "=== STEP 2: Fetching dynamic metadata from GitHub ==="
50+
python 2refresh.py
51+
echo "✓ Metadata extraction completed"
52+
53+
# Check if output file was created
54+
if [ -f "dynamic_metadata_update.csv" ]; then
55+
echo "✓ dynamic_metadata_update.csv created successfully"
56+
wc -l dynamic_metadata_update.csv
57+
else
58+
echo "✗ dynamic_metadata_update.csv not found"
59+
exit 1
60+
fi
61+
62+
- name: Step 3 - Update CKAN Catalog with Metadata
63+
run: |
64+
echo "=== STEP 3: Updating CKAN catalog with metadata ==="
65+
python 3updateCatalog.py
66+
echo "✓ CKAN catalog update completed"
67+
68+
- name: Step 3.1 - Download Existing CSV from CKAN
69+
run: |
70+
echo "=== STEP 3.1: Downloading existing CSV from CKAN ==="
71+
python 31download.py existing_metadata.csv
72+
echo "✓ CSV download completed"
73+
74+
# Check if download was successful
75+
if [ -f "existing_metadata.csv" ]; then
76+
echo "✓ existing_metadata.csv downloaded successfully"
77+
wc -l existing_metadata.csv
78+
else
79+
echo "✗ existing_metadata.csv not found"
80+
exit 1
81+
fi
82+
83+
- name: Step 3.2 - Merge CSVs
84+
run: |
85+
echo "=== STEP 3.2: Merging existing and new CSV data ==="
86+
python 32merger.py existing_metadata.csv dynamic_metadata_update.csv dynamic_metadata_update.csv
87+
echo "✓ CSV merge completed"
88+
89+
# Check if merge was successful (32merger.py overwrites dynamic_metadata_update.csv)
90+
if [ -f "dynamic_metadata_update.csv" ]; then
91+
echo "✓ dynamic_metadata_update.csv merged successfully"
92+
wc -l dynamic_metadata_update.csv
93+
else
94+
echo "✗ dynamic_metadata_update.csv not found after merge"
95+
exit 1
96+
fi
97+
98+
- name: Step 3.3 - Delete Old Resource from CKAN
99+
run: |
100+
echo "=== STEP 3.3: Deleting old resource from CKAN ==="
101+
python 33delete.py
102+
echo "✓ Old resource deletion completed"
103+
104+
- name: Step 4 - Upload New CSV to CKAN Dataset
105+
run: |
106+
echo "=== STEP 4: Uploading merged CSV to CKAN dataset ==="
107+
# The upload script will use dynamic_metadata_update.csv (which is now merged)
108+
python 4uploadDataset.py
109+
echo "✓ CSV upload completed"
110+
111+
- name: Upload artifacts on failure
112+
if: failure()
113+
uses: actions/upload-artifact@v4
114+
with:
115+
name: debug-files
116+
path: |
117+
*.csv
118+
*.log
119+
retention-days: 7
120+
121+
- name: Upload generated CSVs as artifacts
122+
if: success()
123+
uses: actions/upload-artifact@v4
124+
with:
125+
name: metadata-csv-files
126+
path: |
127+
dynamic_metadata_update.csv
128+
existing_metadata.csv
129+
retention-days: 30
130+
131+
- name: Workflow Summary
132+
if: always()
133+
run: |
134+
echo "=== WORKFLOW SUMMARY ==="
135+
echo "Status: ${{ job.status }}"
136+
echo "Timestamp: $(date -u)"
137+
138+
# Show file sizes if they exist
139+
for file in url_list.csv dynamic_metadata_update.csv existing_metadata.csv; do
140+
if [ -f "$file" ]; then
141+
echo "$file: $(wc -l < "$file") lines, $(du -h "$file" | cut -f1)"
142+
fi
143+
done
144+
145+
# Show any log files
146+
if ls *.log >/dev/null 2>&1; then
147+
echo "Log files created:"
148+
ls -la *.log
149+
fi

0 commit comments

Comments
 (0)