name: Build on: push: branches: - main - 'dev/**' pull_request: permissions: contents: read jobs: build: runs-on: ubuntu-latest steps: - name: 检出代码 uses: actions/checkout@v4 - name: 设置 Java 25 uses: actions/setup-java@v4 with: java-version: '25' distribution: temurin cache: gradle - name: 验证 Gradle Wrapper uses: gradle/actions/wrapper-validation@v4 - name: 配置 Gradle uses: gradle/actions/setup-gradle@v4 - name: 授予执行权限 run: chmod +x gradlew - name: 构建插件 run: ./gradlew clean build --no-daemon - name: 上传测试产物 uses: actions/upload-artifact@v4 with: name: EssentialsC-test-build path: build/libs/EssentialsC-*.jar if-no-files-found: error paper-smoke-test: name: Paper ${{ matrix.paper }} / Java ${{ matrix.java }} needs: build runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - paper: '1.21.11' java: '21' - paper: '26.1.2' java: '25' - paper: '26.2' java: '25' steps: - name: 检出代码 uses: actions/checkout@v4 - name: 设置 Java ${{ matrix.java }} uses: actions/setup-java@v4 with: java-version: ${{ matrix.java }} distribution: temurin - name: 下载插件产物 uses: actions/download-artifact@v4 with: name: EssentialsC-test-build path: build/libs - name: 启动 Paper 并验证插件 run: bash scripts/smoke-test-paper.sh '${{ matrix.paper }}'