diff --git a/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java b/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java index 5def378..1abd866 100644 --- a/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java +++ b/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java @@ -51,6 +51,7 @@ import net.fabricmc.loom.configuration.mods.ModProcessor; import net.fabricmc.loom.configuration.processors.dependency.ModDependencyInfo; import net.fabricmc.loom.configuration.processors.dependency.RemapData; import net.fabricmc.loom.util.Constants; +import net.fabricmc.loom.util.OperatingSystem; import net.fabricmc.loom.util.SourceRemapper; @SuppressWarnings("UnstableApiUsage") @@ -96,7 +97,7 @@ public class ModCompileRemapper { File remappedSources = info.getRemappedOutput("sources"); - if (!remappedSources.exists() || refreshDeps) { + if ((!remappedSources.exists() || refreshDeps) && !OperatingSystem.isCIBuild()) { File sources = findSources(dependencies, artifact); if (sources != null) { diff --git a/src/main/java/net/fabricmc/loom/util/OperatingSystem.java b/src/main/java/net/fabricmc/loom/util/OperatingSystem.java index 727948f..2f69bcb 100644 --- a/src/main/java/net/fabricmc/loom/util/OperatingSystem.java +++ b/src/main/java/net/fabricmc/loom/util/OperatingSystem.java @@ -48,4 +48,15 @@ public class OperatingSystem { public static boolean is64Bit() { return System.getProperty("sun.arch.data.model").contains("64"); } + + public static boolean isCIBuild() { + String loomProperty = System.getProperty("fabric.loom.ci"); + + if (loomProperty != null) { + return loomProperty.equalsIgnoreCase("true"); + } + + // CI seems to be set by most popular CI services + return System.getenv("CI") != null; + } } diff --git a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java index 8cf87ff..b8a0a3f 100644 --- a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java +++ b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java @@ -91,10 +91,12 @@ public class SourceRemapper { } public void remapAll() { - if (!remapTasks.isEmpty()) { - project.getLogger().lifecycle(":remapping sources"); + if (remapTasks.isEmpty()) { + return; } + project.getLogger().lifecycle(":remapping sources"); + ProgressLogger progressLogger = ProgressLogger.getProgressFactory(project, SourceRemapper.class.getName()); progressLogger.start("Remapping dependency sources", "sources");