summaryrefslogtreecommitdiff
path: root/.github/workflows/build-dataset.yml
diff options
context:
space:
mode:
authorblackhao <13851610112@163.com>2025-08-22 02:51:50 -0500
committerblackhao <13851610112@163.com>2025-08-22 02:51:50 -0500
commit4aab4087dc97906d0b9890035401175cdaab32d4 (patch)
tree4e2e9d88a711ec5b1cfa02e8ac72a55183b99123 /.github/workflows/build-dataset.yml
parentafa8f50d1d21c721dabcb31ad244610946ab65a3 (diff)
2.0
Diffstat (limited to '.github/workflows/build-dataset.yml')
-rw-r--r--.github/workflows/build-dataset.yml70
1 files changed, 70 insertions, 0 deletions
diff --git a/.github/workflows/build-dataset.yml b/.github/workflows/build-dataset.yml
new file mode 100644
index 0000000..103000b
--- /dev/null
+++ b/.github/workflows/build-dataset.yml
@@ -0,0 +1,70 @@
+name: Build UIUC Course Dataset
+
+on:
+ workflow_dispatch:
+ inputs:
+ year:
+ description: "Catalog year (e.g., 2024)"
+ required: false
+ default: "2024"
+ term:
+ description: "Term (fall|spring|summer|winter)"
+ required: false
+ default: "fall"
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Set up Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: '3.12'
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install -r requirements.txt
+
+ - name: Fetch catalog -> data/courses.json
+ run: |
+ mkdir -p data
+ python scripts/fetch_uiuc_courses.py --year "${{ github.event.inputs.year }}" --term "${{ github.event.inputs.term }}" --output data/courses.json
+
+ - name: Analyze prerequisites
+ run: |
+ python scripts/analyze_prereqs.py data/courses.json --outdir data/analysis
+
+ - name: Parse course-only prerequisites
+ run: |
+ mkdir -p data/parsed
+ python scripts/parse_course_prereqs.py data/analysis/course_only.json --output data/parsed/course_only_parsed.json --unparsed-output data/parsed/course_only_unparsed.json
+
+ - name: Build final parsed dataset
+ run: |
+ python scripts/build_final_parsed.py data/courses.json --output data/courses_parsed.json
+
+ - name: Upload raw courses
+ uses: actions/upload-artifact@v4
+ with:
+ name: courses-json
+ path: data/courses.json
+
+ - name: Upload analysis
+ uses: actions/upload-artifact@v4
+ with:
+ name: analysis-json
+ path: data/analysis
+
+ - name: Upload parsed outputs
+ uses: actions/upload-artifact@v4
+ with:
+ name: parsed-json
+ path: |
+ data/parsed
+ data/courses_parsed.json
+
+