diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index 22d15557..bc75398b 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -20,6 +20,7 @@ jobs: prop() { grep -P "^\s*[^#]?${1}=.*$" './gradle.properties' | cut -d'=' -f2; } echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV echo "MOD_VERSION=`echo $(prop "mod_version")`" >> $GITHUB_ENV + echo "MINECRAFT_VERSION=`echo $(prop "minecraft_version")`" >> $GITHUB_ENV - run: if [ "${{env.GIT_TAG}}" != "v${{env.MOD_VERSION}}" ];then exit 1;fi @@ -52,7 +53,9 @@ jobs: run: | chmod +x ./gradlew ./gradlew runData - ./gradlew build publish genUpdateJson + ./gradlew build publish generateUpdateJson + mkdir ./pages + cp "./build/tmp/${{env.MINECRAFT_VERSION}}.json" ./pages - name: Update update JSON uses: JamesIves/github-pages-deploy-action@v4 @@ -60,7 +63,7 @@ jobs: clean: false target-folder: update branch: gh-pages - folder: tmp + folder: pages - name: Github release uses: softprops/action-gh-release@v1 diff --git a/.github/workflows/dev-build.yml b/.github/workflows/dev-build.yml index dd3bafd7..4278a5f6 100644 --- a/.github/workflows/dev-build.yml +++ b/.github/workflows/dev-build.yml @@ -17,27 +17,25 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'temurin' - architecture: 'x64' - cache: 'gradle' - - - name: Build with Gradle - run: | - chmod +x ./gradlew - ./gradlew runData - ./gradlew build outputProjectFullname - - - name: Read project full name - run: echo "PROJECT_FULL_NAME=`cat ./tmp/fullname.txt`" >> $GITHUB_ENV - - - name: Upload build artifacts - uses: actions/upload-artifact@v1 - with: - name: ${{env.PROJECT_FULL_NAME}} - path: build/libs + - uses: actions/checkout@v3 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + architecture: 'x64' + cache: 'gradle' + + - name: Build with Gradle + run: | + chmod +x ./gradlew + ./gradlew runData + ./gradlew build + echo "ARTIFACT_NAME=`cat ./build/tmp/artifact-name.txt`" >> $GITHUB_ENV + + - name: Upload build artifacts + uses: actions/upload-artifact@v1 + with: + name: ${{env.ARTIFACT_NAME}} + path: build/libs diff --git a/build.gradle b/build.gradle index 1be742f1..42237414 100644 --- a/build.gradle +++ b/build.gradle @@ -6,90 +6,27 @@ plugins { id 'net.neoforged.gradle.userdev' version '7.0.80' } -repositories { - mavenLocal() -} - java.toolchain.languageVersion = JavaLanguageVersion.of(17) -apply from: 'gradle/custom-clean.gradle' -apply from: 'gradle/build-info.gradle' - -minecraft { - accessTransformers { - file('src/main/resources/META-INF/accesstransformer.cfg') - } -} +repositories {} +dependencies {} +apply from: "${scripts_url}/minecraft/neo/minecraft.gradle" runs { configureEach { - systemProperty 'forge.logging.markers', 'REGISTRIES' + // systemProperty 'forge.logging.markers', 'REGISTRIES' systemProperty 'forge.logging.console.level', 'debug' - systemProperty 'mixin.debug', 'true' - - modSource project.sourceSets.main - } - - client { - systemProperty 'forge.enabledGameTestNamespaces', project.mod_id - } - - server { - systemProperty 'forge.enabledGameTestNamespaces', project.mod_id - programArgument '--nogui' - } - - gameTestServer { - systemProperty 'forge.enabledGameTestNamespaces', project.mod_id - } - - data { - programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() - } -} - -sourceSets.main.resources { srcDir 'src/generated/resources' } - -dependencies { - implementation "net.neoforged:neoforge:${neo_version}" -} - -tasks.withType(ProcessResources).configureEach { - var replaceProperties = [ - minecraft_version : minecraft_version, - minecraft_version_range: minecraft_version_range, - neo_version : neo_version, - neo_version_range : neo_version_range, - loader_version_range : loader_version_range, - mod_id : mod_id, - mod_name : mod_name, - mod_license : mod_license, - mod_version : mod_version, - mod_authors : mod_authors, - mod_credits : mod_credits, - mod_description : mod_description, - mod_repository : mod_repository, - ] - inputs.properties replaceProperties - - filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) { - expand replaceProperties + [project: project] } } -publishing { - publications { - register('mavenJava', MavenPublication) { - from components.java - } - } - repositories { - maven { - url "file://${project.projectDir}/repo" - } - } -} +apply from: "${scripts_url}/minecraft/neo/resources.gradle" +apply from: "${scripts_url}/minecraft/neo/build-info.gradle" +apply from: "${scripts_url}/minecraft/neo/artifacts.gradle" +apply from: "${scripts_url}/minecraft/neo/publishing.gradle" +apply from: "${scripts_url}/common/signing.gradle" +apply from: "${scripts_url}/minecraft/neo/custom-clean.gradle" +apply from: "${scripts_url}/minecraft/neo/update-json.gradle" tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' diff --git a/gradle.properties b/gradle.properties index e7937554..9a96d567 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,6 +3,8 @@ org.gradle.daemon=false org.gradle.debug=false +scripts_url=https://hi.auioc.org/gradle-scripts + neogradle.subsystems.parchment.minecraftVersion=1.20.3 neogradle.subsystems.parchment.mappingsVersion=2023.12.31 diff --git a/gradle/build-info.gradle b/gradle/build-info.gradle deleted file mode 100644 index 446f5906..00000000 --- a/gradle/build-info.gradle +++ /dev/null @@ -1,67 +0,0 @@ -static def getEnvAsBoolean(String name) { - return System.getenv(name) && System.getenv(name).toBoolean() -} - -def getExecOutput(List commands) { - def out = new ByteArrayOutputStream() - exec { - commandLine commands - standardOutput out - } - return out.toString().trim() -} - -def isCi = getEnvAsBoolean('CI') -def isGithubActions = isCi && getEnvAsBoolean('GITHUB_ACTIONS') -def hasGit = project.file('.git').isDirectory() - -def revision = (() -> { - if (isGithubActions) { - return System.getenv('GITHUB_SHA') - } else if (hasGit) { - return getExecOutput(['git', 'rev-parse', '--verify', 'HEAD']) - } - return 'unknown' -})() -def revisionShort = revision.length() > 8 ? revision.substring(0, 7) : revision -def buildNumber = isGithubActions ? System.getenv('GITHUB_RUN_NUMBER').toInteger() : 0 -def isDirty = hasGit ? !getExecOutput(['git', 'status', '--short']).isEmpty() : false -def isRelease = isGithubActions ? getEnvAsBoolean('IS_RELEASE') : false -def buildInfo = "rev.${revisionShort}-build.${buildNumber}${isRelease ? '' : '-dev'}${isDirty ? '-dirty' : ''}" - -project.group = mod_group_id -project.base { - archivesName = mod_id -} -project.version = getEnvAsBoolean('IS_RELEASE') - ? "${minecraft_version}-${mod_version}" - : "${minecraft_version}-${mod_version}-${buildInfo}" - -sourceSets.main.java { srcDir "$buildDir/generated/java" } - -def package_name = "${mod_group_id}.${mod_id}" -def template = """ -package ${package_name}; -public final class BuildInfo { - public static final String MINECRAFT_VERSION = "${minecraft_version}"; - public static final String NEOFORGE_VERSION = "${neo_version}"; - public static final String MOD_VERSION = "${mod_version}"; - public static final boolean IS_CI_BUILD = ${isCi}; - public static final String REVERSION = "${revision}"; - public static final int BUILD_NUMBER = ${buildNumber}; - public static final boolean IS_RELEASE = ${isRelease}; - public static final boolean IS_DIRTY = ${isDirty}; -} -""" - -compileJava { - doFirst { - file("$buildDir/generated/java/").mkdirs() - file("$buildDir/generated/java/BuildInfo.java").write(template) - logger.lifecycle("Build info generated") - logger.info(template) - } -} - - - diff --git a/gradle/custom-clean.gradle b/gradle/custom-clean.gradle deleted file mode 100644 index 7030bda5..00000000 --- a/gradle/custom-clean.gradle +++ /dev/null @@ -1,21 +0,0 @@ -// https://github.com/neoforged/NeoGradle/issues/18 -tasks.register('customClean', Delete) { - doLast { - def files = [] - fileTree("build") - .exclude('**/expanded.lock') - .visit { FileVisitDetails fvd -> - files << fvd.file - } - files.reverse() - .each { f -> - def file = file(f) - if (!file.exists()) return; - if ((file.isDirectory() && file.list().size() == 0) - || !file.isDirectory()) - delete f - } - } -} -clean.dependsOn customClean -clean.enabled = false