Compare commits

..

33 Commits
submit ... main

Author SHA1 Message Date
User
257c1a91ed 完成作业
Some checks failed
autograde-final-vibevault / check-trigger (push) Successful in 5s
autograde-final-vibevault / grade (push) Failing after 40s
2025-12-23 20:28:58 +08:00
User
750af38ff5 完成作业 2025-12-23 20:20:21 +08:00
User
adeae07283 完成作业
Some checks failed
autograde-final-vibevault / check-trigger (push) Successful in 3s
autograde-final-vibevault / grade (push) Failing after 41s
2025-12-23 20:10:28 +08:00
User
145d2fafcb 完成作业
Some checks failed
autograde-final-vibevault / check-trigger (push) Successful in 6s
autograde-final-vibevault / grade (push) Failing after 44s
2025-12-23 20:03:56 +08:00
User
47b459da42 完成作业
Some checks failed
autograde-final-vibevault / check-trigger (push) Successful in 3s
autograde-final-vibevault / grade (push) Failing after 36s
2025-12-23 19:51:06 +08:00
User
4959bbe4af 完成作业:修复合并冲突
Some checks failed
autograde-final-vibevault / check-trigger (push) Successful in 8s
autograde-final-vibevault / grade (push) Failing after 40s
2025-12-23 19:45:02 +08:00
User
5f2c7af0de 完成作业 2025-12-23 19:40:33 +08:00
User
53b844b9d9 完成作业 2025-12-23 19:34:37 +08:00
User
f9b2162606 Initial commit 2025-12-23 19:12:44 +08:00
f527132776 Add grade report for 5629c49
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 4s
autograde-final-vibevault / grade (push) Has been skipped
2025-12-23 14:22:55 +08:00
mh04194357
5629c49601 完成作业
Some checks failed
autograde-final-vibevault / check-trigger (push) Successful in 3s
autograde-final-vibevault / grade (push) Has been cancelled
2025-12-23 14:18:41 +08:00
fc3273bfac 删除 reports/grade_report_d9cbab1.pdf
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 2s
autograde-final-vibevault / grade (push) Has been skipped
2025-12-23 14:14:22 +08:00
450c704c9c 删除 reports/grade_report_737eecb.pdf
Some checks failed
autograde-final-vibevault / check-trigger (push) Has been cancelled
autograde-final-vibevault / grade (push) Has been cancelled
2025-12-23 14:14:16 +08:00
1711d6b8f7 Add grade report for 737eecb
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 3s
autograde-final-vibevault / grade (push) Has been skipped
2025-12-23 14:10:54 +08:00
mh04194357
737eecbc3c 完成作业:重新执行评分
Some checks failed
autograde-final-vibevault / check-trigger (push) Successful in 4s
autograde-final-vibevault / grade (push) Has been cancelled
2025-12-23 14:06:52 +08:00
mh04194357
9cf1f5098b Merge branch 'main' of http://49.234.193.192:3000/mh04194357/2311061205
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 2s
autograde-final-vibevault / grade (push) Has been skipped
2025-12-23 14:04:45 +08:00
mh04194357
1f979a6b30 完成作业:触发自动评分 2025-12-23 14:03:10 +08:00
def8f4cc14 Update grade report for d9cbab1
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 4s
autograde-final-vibevault / grade (push) Has been skipped
2025-12-23 13:59:32 +08:00
d6fcf3a6ab Add grade report for d9cbab1
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 3s
autograde-final-vibevault / grade (push) Has been skipped
2025-12-23 13:56:16 +08:00
mh04194357
d9cbab16b2 完成作业
Some checks failed
autograde-final-vibevault / check-trigger (push) Successful in 4s
autograde-final-vibevault / grade (push) Has been cancelled
2025-12-23 13:52:37 +08:00
mh04194357
1c57b27715 完成作业
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 4s
autograde-final-vibevault / grade (push) Successful in 2m52s
2025-12-23 13:44:11 +08:00
mh04194357
4f607ee5be 完成作业
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 2s
autograde-final-vibevault / grade (push) Successful in 39s
2025-12-23 13:30:59 +08:00
mh04194357
d3adf281a8 完成作业
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 8s
autograde-final-vibevault / grade (push) Successful in 59s
2025-12-23 13:22:14 +08:00
mh04194357
6ae7f6e8e5 完成作业
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 3s
autograde-final-vibevault / grade (push) Successful in 45s
2025-12-23 13:16:14 +08:00
mh04194357
5c5e8db0da 完成作业
Some checks failed
autograde-final-vibevault / check-trigger (push) Failing after 4s
autograde-final-vibevault / grade (push) Has been skipped
2025-12-23 13:13:20 +08:00
mh04194357
1542ba9b24 完成作业 2025-12-23 13:10:33 +08:00
mh04194357
bee0155da2 完成作业 2025-12-23 13:06:56 +08:00
mh04194357
1c0c4b8a0f 完成作业 2025-12-23 13:02:27 +08:00
mh04194357
45330280a1 完成作业 2025-12-23 13:00:33 +08:00
mh04194357
5cc51bc2a1 完成作业
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 2s
autograde-final-vibevault / grade (push) Successful in 42s
2025-12-23 12:54:37 +08:00
mh04194357
27cc129198 完成作业:修复PDF脚本语法错误
All checks were successful
autograde-final-vibevault / check-trigger (push) Successful in 3s
autograde-final-vibevault / grade (push) Successful in 36s
2025-12-23 12:49:52 +08:00
mh04194357
98b42af37d 完成作业:修复自动评分脚本
Some checks failed
autograde-final-vibevault / check-trigger (push) Successful in 6s
autograde-final-vibevault / grade (push) Failing after 57s
2025-12-23 12:46:59 +08:00
mh04194357
c73e85ec74 完成作业:重新触发评分
Some checks failed
autograde-final-vibevault / check-trigger (push) Successful in 6s
autograde-final-vibevault / grade (push) Failing after 34s
2025-12-23 12:42:01 +08:00
4 changed files with 40 additions and 28 deletions

View File

@ -33,7 +33,7 @@ jobs:
else else
echo "trigger=false" >> $GITHUB_OUTPUT echo "trigger=false" >> $GITHUB_OUTPUT
echo "⛔ 只有包含“完成作业”的提交才会执行自动评分" >&2 echo "⛔ 只有包含“完成作业”的提交才会执行自动评分" >&2
fi fi
grade: grade:
needs: check-trigger needs: check-trigger
@ -63,7 +63,7 @@ jobs:
pip3 install --break-system-packages python-dotenv requests markdown weasyprint -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com pip3 install --break-system-packages python-dotenv requests markdown weasyprint -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
# 刷新字体缓存 # 刷新字体缓存
fc-cache -f -v > /dev/null 2>&1 || true fc-cache -f -v > /dev/null 2>&1 || true
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
- name: Configure Gradle mirror (Aliyun) - name: Configure Gradle mirror (Aliyun)
run: | run: |
@ -80,7 +80,7 @@ jobs:
} }
} }
EOF EOF
echo "✅ Gradle configured to use Aliyun mirror" echo "✅ Gradle configured to use Aliyun mirror"
- name: Checkout code - name: Checkout code
env: env:
@ -93,7 +93,7 @@ jobs:
AUTH_URL=$(echo "$REPO_URL" | sed "s|://|://${GITHUB_TOKEN}@|") AUTH_URL=$(echo "$REPO_URL" | sed "s|://|://${GITHUB_TOKEN}@|")
git remote add origin "$AUTH_URL" git remote add origin "$AUTH_URL"
git fetch --depth=1 origin ${{ github.sha }} git fetch --depth=1 origin ${{ github.sha }}
git checkout ${{ github.sha }} git checkout ${{ github.sha }}
- name: Fix permissions - name: Fix permissions
run: chown -R $(whoami):$(whoami) ${{ github.workspace }} || true run: chown -R $(whoami):$(whoami) ${{ github.workspace }} || true
@ -177,7 +177,7 @@ jobs:
fi fi
# Cleanup # Cleanup
rm -rf _priv_tests rm -rf _priv_tests
- name: Run tests - name: Run tests
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
@ -190,7 +190,7 @@ jobs:
# Also try to get a single combined report # Also try to get a single combined report
if [ -f build/test-results/test/TEST-*.xml ]; then if [ -f build/test-results/test/TEST-*.xml ]; then
cp build/test-results/test/TEST-*.xml junit.xml 2>/dev/null || true cp build/test-results/test/TEST-*.xml junit.xml 2>/dev/null || true
fi fi
- name: Grade programming tests - name: Grade programming tests
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
@ -200,7 +200,7 @@ jobs:
--junit-dir build/test-results/test \ --junit-dir build/test-results/test \
--groups test_groups.json \ --groups test_groups.json \
--out grade.json \ --out grade.json \
--summary summary.md --summary summary.md
- name: Grade REPORT.md - name: Grade REPORT.md
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
@ -217,7 +217,7 @@ jobs:
else else
echo '{"total": 0, "flags": ["missing_file"]}' > report_grade.json echo '{"total": 0, "flags": ["missing_file"]}' > report_grade.json
echo "⚠️ REPORT.md or rubric not found" echo "⚠️ REPORT.md or rubric not found"
fi fi
- name: Grade FRONTEND.md - name: Grade FRONTEND.md
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
@ -234,7 +234,7 @@ jobs:
else else
echo '{"total": 0, "flags": ["missing_file"]}' > frontend_grade.json echo '{"total": 0, "flags": ["missing_file"]}' > frontend_grade.json
echo "⚠️ FRONTEND.md or rubric not found" echo "⚠️ FRONTEND.md or rubric not found"
fi fi
- name: Aggregate grades - name: Aggregate grades
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
@ -244,7 +244,7 @@ jobs:
--report report_grade.json \ --report report_grade.json \
--frontend frontend_grade.json \ --frontend frontend_grade.json \
--out final_grade.json \ --out final_grade.json \
--summary final_summary.md --summary final_summary.md
- name: Generate PDF report - name: Generate PDF report
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
@ -279,7 +279,7 @@ jobs:
--student-name "$STUDENT_NAME" \ --student-name "$STUDENT_NAME" \
--class-name "$CLASS_NAME" \ --class-name "$CLASS_NAME" \
--commit-sha "$COMMIT_SHA" --commit-sha "$COMMIT_SHA"
fi fi
- name: Upload report to student repo - name: Upload report to student repo
if: env.RUNNER_METADATA_TOKEN != '' if: env.RUNNER_METADATA_TOKEN != ''
@ -350,7 +350,7 @@ jobs:
# 清理临时文件 # 清理临时文件
rm -f /tmp/upload_request.json rm -f /tmp/upload_request.json
fi fi
- name: Create metadata - name: Create metadata
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
@ -360,7 +360,7 @@ jobs:
if [ -f final_grade.json ]; then if [ -f final_grade.json ]; then
export GRADE_TYPE=final export GRADE_TYPE=final
python3 ./.autograde/create_minimal_metadata.py > metadata.json || echo "{}" > metadata.json python3 ./.autograde/create_minimal_metadata.py > metadata.json || echo "{}" > metadata.json
fi fi
- name: Upload metadata - name: Upload metadata
if: env.RUNNER_METADATA_TOKEN != '' if: env.RUNNER_METADATA_TOKEN != ''
@ -386,5 +386,4 @@ jobs:
--workflow grade \ --workflow grade \
--server-url "${SERVER_URL}" \ --server-url "${SERVER_URL}" \
--external-host "${EXTERNAL_GITEA_HOST}" --external-host "${EXTERNAL_GITEA_HOST}"
fi fi

View File

@ -16,6 +16,9 @@ java {
repositories { repositories {
maven { url = uri("https://maven.aliyun.com/repository/public") } maven { url = uri("https://maven.aliyun.com/repository/public") }
maven { url = uri("https://maven.aliyun.com/repository/central") }
maven { url = uri("https://maven.aliyun.com/repository/spring") }
maven { url = uri("https://maven.aliyun.com/repository/spring-plugin") }
mavenCentral() mavenCentral()
} }
@ -50,5 +53,9 @@ tasks.withType<Test> {
reports { reports {
junitXml.required.set(true) junitXml.required.set(true)
} }
// Simplified configuration for Java 21 compatibility
enableAssertions = true
// Increase memory for tests
jvmArgs = listOf("-Xmx1024m", "-XX:+UseG1GC")
} }

View File

@ -1,8 +1,11 @@
# Gradle settings # Disable Gradle Daemon
org.gradle.daemon=true org.gradle.daemon=false
org.gradle.parallel=true
org.gradle.caching=true
# JDK 21 path - modify this to your actual installation path # Disable parallel execution
org.gradle.java.home=F:/OpenJDK21U-jdk_x64_windows_hotspot/jdk-21.0.9.10-hotspot org.gradle.parallel=false
# Disable configuration on demand
org.gradle.configureondemand=false
# Fix for Java 21 compatibility
org.gradle.jvmargs=-Xmx1024m -XX:+UseG1GC

View File

@ -3,12 +3,12 @@ package com.vibevault.model;
import jakarta.persistence.*; import jakarta.persistence.*;
/** /**
* 歌曲实体类 * 姝屾洸瀹炰綋绫?
* *
* 需要实现 * 瑕佸疄鐜帮細
* - 将此类映射为数据库表 "songs" * - 灏嗘绫绘槧灏勪负鏁版嵁搴撹 "songs"
* - id 作为自增主键 * - id 浣滀负鑷涓婚敭
* - 每首歌曲属于一个歌单多对一关系 * - 姣忛姝屾洸灞炰簬涓瓕鍗曪紙澶氬鍏崇郴锛?
*/ */
@Entity @Entity
@Table(name = "songs") @Table(name = "songs")
@ -18,10 +18,13 @@ public class Song {
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
@Column(nullable = false)
private String title; private String title;
@Column(nullable = false)
private String artist; private String artist;
@Column(nullable = false)
private int durationInSeconds; private int durationInSeconds;
@ManyToOne @ManyToOne
@ -60,4 +63,4 @@ public class Song {
public void setPlaylist(Playlist playlist) { public void setPlaylist(Playlist playlist) {
this.playlist = playlist; this.playlist = playlist;
} }
} }