From 627515ff569e3bf3345104dbfaac6b3af8dc3539 Mon Sep 17 00:00:00 2001 From: object-Object Date: Thu, 16 Nov 2023 19:41:51 -0500 Subject: [PATCH 1/7] Add task to run all datagen tasks --- build.gradle | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build.gradle b/build.gradle index 4caf6f5f1c..4c93acbdcc 100644 --- a/build.gradle +++ b/build.gradle @@ -86,3 +86,9 @@ compileTestKotlin { jvmTarget = "17" } } + +tasks.register("runAllDatagen") { + dependsOn ":Forge:runXplatDatagen" + dependsOn ":Forge:runForgeDatagen" + dependsOn ":Fabric:runDatagen" +} From d547e1ce117733bbe86d8bcadf013b9505685056 Mon Sep 17 00:00:00 2001 From: object-Object Date: Thu, 16 Nov 2023 20:18:28 -0500 Subject: [PATCH 2/7] Add Jenkins stage to fail if the datagen needs to be run --- Jenkinsfile | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 5acae7592a..f1bfef6dc9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,6 +24,17 @@ pipeline { sh './gradlew build' } } + stage('Check Datagen') { + steps { + echo 'Running datagen tasks' + sh './gradlew runAllDatagen' + script { + if (currentBuild.changeSets.size() > 0) { + error('Build contains changes after finishing the runAllDatagen task. Please run the datagen locally and commit/push the updated files.') + } + } + } + } stage('Publish') { when { anyOf { From d543e11f36778dbbd1d8d60c0711b96684e10cf6 Mon Sep 17 00:00:00 2001 From: object-Object Date: Sat, 25 Nov 2023 15:12:40 -0500 Subject: [PATCH 3/7] Bump Forge and Patchouli versions to fix the datagen failure --- Forge/gradle.properties | 2 +- gradle.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Forge/gradle.properties b/Forge/gradle.properties index 3dcf2ae014..57a5c0f489 100644 --- a/Forge/gradle.properties +++ b/Forge/gradle.properties @@ -1,4 +1,4 @@ -forgeVersion=47.1.43 +forgeVersion=47.1.47 kotlinForForgeVersion=4.3.0 diff --git a/gradle.properties b/gradle.properties index 79efc457a6..d8828e7c16 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ kotlinVersion=1.7.20 modVersion=0.11.1-7 paucalVersion=0.6.0 -patchouliVersion=82 +patchouliVersion=83 jeiVersion=15.0.0.12 pehkuiVersion=3.7.7 From 40dd12f0d099b2605d50cceaf2e02b552d26b3f9 Mon Sep 17 00:00:00 2001 From: object-Object Date: Sat, 25 Nov 2023 15:38:47 -0500 Subject: [PATCH 4/7] Fix spurious Forge/Xplat datagen failures by adding forceExit false --- Forge/build.gradle | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Forge/build.gradle b/Forge/build.gradle index 426300957c..9cd4e8e1d3 100644 --- a/Forge/build.gradle +++ b/Forge/build.gradle @@ -142,6 +142,11 @@ minecraft { property 'mixin.env.remapRefMap', 'true' property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" property 'hexcasting.xplat_datagen', 'true' + + // disable the System.exit(0) at the end of the ForgeGradle datagen so Gradle stops thinking it failed + // see: https://github.com/MinecraftForge/ForgeGradle/pull/686 + forceExit false + mods { create(modID) { source sourceSets.main @@ -159,6 +164,7 @@ minecraft { property 'mixin.env.remapRefMap', 'true' property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" property 'hexcasting.forge_datagen', 'true' + forceExit false mods { create(modID) { source sourceSets.main From eadb9e5e136a62ac0d74f91a76ffaa1e3d110926 Mon Sep 17 00:00:00 2001 From: object-Object Date: Sun, 26 Nov 2023 02:45:13 -0500 Subject: [PATCH 5/7] Ignore generated/resources/.cache when checking for changes from datagen --- Jenkinsfile | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f1bfef6dc9..1206afeb8c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,15 +24,20 @@ pipeline { sh './gradlew build' } } - stage('Check Datagen') { + stage('Run Datagen') { steps { echo 'Running datagen tasks' sh './gradlew runAllDatagen' - script { - if (currentBuild.changeSets.size() > 0) { - error('Build contains changes after finishing the runAllDatagen task. Please run the datagen locally and commit/push the updated files.') - } - } + } + } + stage('Check Datagen') { + when { + // cache isn't reproducible, so ignore modifications to it + // https://stackoverflow.com/a/71878316 + changeset pattern: '^(?!.*generated/resources/.cache).*', comparator: 'REGEXP' + } + steps { + error('Build contains changes after finishing the runAllDatagen task. Run the datagen locally and commit/push the updated files.') } } stage('Publish') { From d979f504e8c1892850d4eb65c09a752dab8a88e1 Mon Sep 17 00:00:00 2001 From: object-Object Date: Tue, 5 Dec 2023 21:58:51 -0500 Subject: [PATCH 6/7] Use git diff to check for modified files --- Jenkinsfile | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1206afeb8c..e4eb46f1dc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,20 +24,15 @@ pipeline { sh './gradlew build' } } - stage('Run Datagen') { + stage('Check Datagen') { steps { echo 'Running datagen tasks' sh './gradlew runAllDatagen' - } - } - stage('Check Datagen') { - when { + // cache isn't reproducible, so ignore modifications to it // https://stackoverflow.com/a/71878316 - changeset pattern: '^(?!.*generated/resources/.cache).*', comparator: 'REGEXP' - } - steps { - error('Build contains changes after finishing the runAllDatagen task. Run the datagen locally and commit/push the updated files.') + echo 'Checking for modified files' + sh 'git diff --name-only --exit-code -- ":!:*/src/generated/resources/.cache/*"' } } stage('Publish') { From 4944d8defc13015ccf09632bb50d53c047147f8b Mon Sep 17 00:00:00 2001 From: object-Object Date: Tue, 5 Dec 2023 22:19:25 -0500 Subject: [PATCH 7/7] Fix untracked files being ignored --- Jenkinsfile | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e4eb46f1dc..5c470c0fd3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,14 +24,19 @@ pipeline { sh './gradlew build' } } - stage('Check Datagen') { + stage('Run Datagen') { steps { echo 'Running datagen tasks' sh './gradlew runAllDatagen' - + } + } + stage('Check Datagen') { + steps { + echo 'Checking for modified files' + // also fail if there are new untracked files + sh 'git add --intent-to-add .' // cache isn't reproducible, so ignore modifications to it // https://stackoverflow.com/a/71878316 - echo 'Checking for modified files' sh 'git diff --name-only --exit-code -- ":!:*/src/generated/resources/.cache/*"' } }