Compare commits

..

No commits in common. "main" and "submit" have entirely different histories.
main ... submit

4 changed files with 28 additions and 40 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,4 +386,5 @@ 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,9 +16,6 @@ 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()
} }
@ -53,9 +50,5 @@ 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,11 +1,8 @@
# Disable Gradle Daemon # Gradle settings
org.gradle.daemon=false org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
# Disable parallel execution # JDK 21 path - modify this to your actual installation path
org.gradle.parallel=false org.gradle.java.home=F:/OpenJDK21U-jdk_x64_windows_hotspot/jdk-21.0.9.10-hotspot
# 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,13 +18,10 @@ 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
@ -63,4 +60,4 @@ public class Song {
public void setPlaylist(Playlist playlist) { public void setPlaylist(Playlist playlist) {
this.playlist = playlist; this.playlist = playlist;
} }
} }