diff --git a/eng/pipelines/coreclr/templates/format-job.yml b/eng/pipelines/coreclr/templates/format-job.yml index c33d212b296829..3a78c28cfb8cca 100644 --- a/eng/pipelines/coreclr/templates/format-job.yml +++ b/eng/pipelines/coreclr/templates/format-job.yml @@ -10,7 +10,7 @@ parameters: ### Format job jobs: -- template: xplat-job.yml +- template: xplat-pipeline-job.yml parameters: buildConfig: ${{ parameters.buildConfig }} archType: ${{ parameters.archType }} @@ -36,12 +36,12 @@ jobs: displayName: Run tests/scripts/format.py inputs: scriptSource: 'filePath' - scriptPath: $(Build.SourcesDirectory)/tests/scripts/format.py - arguments: '-c $(Build.SourcesDirectory) -o $(osGroup) -a $(archType)' + scriptPath: $(coreClrRepoRoot)/tests/scripts/format.py + arguments: '-c $(coreClrRepoRoot) -o $(osGroup) -a $(archType)' - task: PublishBuildArtifacts@1 displayName: Publish format.patch inputs: - PathtoPublish: '$(Build.SourcesDirectory)/format.patch' + PathtoPublish: '$(coreClrRepoRoot)/format.patch' ArtifactName: format.$(osGroup).$(archType).patch continueOnError: true condition: failed() diff --git a/src/coreclr/src/jit/compiler.cpp b/src/coreclr/src/jit/compiler.cpp index 29b5e5e20ef3e0..89aa92440e14d6 100644 --- a/src/coreclr/src/jit/compiler.cpp +++ b/src/coreclr/src/jit/compiler.cpp @@ -6139,8 +6139,9 @@ int Compiler::compCompileHelper(CORINFO_MODULE_HANDLE classPtr, #ifdef DEBUG if (JitConfig.DumpJittedMethods() == 1 && !compIsForInlining()) { - printf("Compiling %4d %s::%s, IL size = %u, hash=%08x %s\n", Compiler::jitTotalMethodCompiled, info.compClassName, - info.compMethodName, info.compILCodeSize, info.compMethodHash(), compGetTieringName()); + printf("Compiling %4d %s::%s, IL size = %u, hash=%08x %s\n", Compiler::jitTotalMethodCompiled, + info.compClassName, info.compMethodName, info.compILCodeSize, info.compMethodHash(), + compGetTieringName()); } if (compIsForInlining()) { diff --git a/src/coreclr/tests/scripts/format.py b/src/coreclr/tests/scripts/format.py index bf341168311966..60729d68fbbfed 100644 --- a/src/coreclr/tests/scripts/format.py +++ b/src/coreclr/tests/scripts/format.py @@ -119,26 +119,40 @@ def main(argv): assert len(os.listdir(os.path.dirname(bootstrapPath))) == 0 + print('Downloading', bootstrapUrl, 'to', bootstrapPath) urlretrieve(bootstrapUrl, bootstrapPath) if not os.path.isfile(bootstrapPath): print("Did not download bootstrap!") return -1 + if platform == 'Windows_NT': + # Need to ensure we have Windows line endings on the downloaded script file, + # which is downloaded with Unix line endings. + print('Convert', bootstrapPath, 'to Windows line endings') + + content = None + with open(bootstrapPath, 'rb') as open_file: + content = open_file.read() + + content = content.replace(b'\n', b'\r\n') + + with open(bootstrapPath, 'wb') as open_file: + open_file.write(content) + # On *nix platforms, we need to make the bootstrap file executable if platform == 'Linux' or platform == 'OSX': print("Making bootstrap executable") os.chmod(bootstrapPath, 0o751) - print(bootstrapPath) - # Run bootstrap if platform == 'Linux' or platform == 'OSX': - print("Running bootstrap") + print('Running:', 'bash', bootstrapPath) proc = subprocess.Popen(['bash', bootstrapPath], env=my_env) output,error = proc.communicate() elif platform == 'Windows_NT': + print('Running:', bootstrapPath) proc = subprocess.Popen([bootstrapPath], env=my_env) output,error = proc.communicate() @@ -147,7 +161,6 @@ def main(argv): returncode = 0 jitutilsBin = os.path.join(os.path.dirname(bootstrapPath), "jitutils", "bin") my_env["PATH"] = jitutilsBin + os.pathsep + my_env["PATH"] - current_dir = os.getcwd() if not os.path.isdir(jitutilsBin): print("Jitutils not built!") @@ -166,6 +179,8 @@ def main(argv): for build in builds: for project in projects: + command = jitformat + " -a " + arch + " -b " + build + " -o " + platform + " -c " + coreclr + " --verbose --projects " + project + print('Running:', command) proc = subprocess.Popen([jitformat, "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env) output,error = proc.communicate() errorcode = proc.returncode @@ -187,43 +202,41 @@ def main(argv): proc = subprocess.Popen([jitformat, "--fix", "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env) output,error = proc.communicate() - os.chdir(current_dir) + patchFilePath = os.path.join(coreclr, "format.patch") - patchFilePath = os.path.join(coreclr, "format.patch") + if returncode != 0: + # Create a patch file + print("Creating patch file " + patchFilePath) + patchFile = open(patchFilePath, "w") + proc = subprocess.Popen(["git", "diff", "--patch", "-U20"], env=my_env, stdout=patchFile) + output,error = proc.communicate() - if returncode != 0: - # Create a patch file - print("Creating patch file " + patchFilePath) - patchFile = open(patchFilePath, "w") - proc = subprocess.Popen(["git", "diff", "--patch", "-U20"], env=my_env, stdout=patchFile) - output,error = proc.communicate() + if os.path.isdir(jitUtilsPath): + print("Deleting " + jitUtilsPath) + shutil.rmtree(jitUtilsPath, onerror=del_rw) - if os.path.isdir(jitUtilsPath): - print("Deleting " + jitUtilsPath) - shutil.rmtree(jitUtilsPath, onerror=del_rw) - - if os.path.isfile(bootstrapPath): - print("Deleting " + bootstrapPath) - os.remove(bootstrapPath) - - if returncode != 0: - print("There were errors in formatting. Please run jit-format locally with: \n") - print(errorMessage) - print("\nOr download and apply generated patch:") - print("1. From the GitHub 'Checks' page on the Pull Request, with the failing Formatting") - print(" job selected (e.g., 'Formatting Linux x64'), click the 'View more details on") - print(" Azure Pipelines' link.") - print("3. Select the 'Summary' tab.") - print("4. Open the 'Build artifacts published' entry.") - print("5. Find the link to the OS/architecture appropriate format patch file.") - print("6. Click on the link to download it.") - print("7. Unzip the patch file.") - print("8. git apply format.patch") - - if (returncode != 0) and (os.environ.get("TF_BUILD") == "True"): - print("##vso[task.logissue type=error](NETCORE_ENGINEERING_TELEMETRY=Build) Format job found errors, please apply the format patch.") - - return returncode + if os.path.isfile(bootstrapPath): + print("Deleting " + bootstrapPath) + os.remove(bootstrapPath) + + if returncode != 0: + print("There were errors in formatting. Please run jit-format locally with: \n") + print(errorMessage) + print("\nOr download and apply generated patch:") + print("1. From the GitHub 'Checks' page on the Pull Request, with the failing Formatting") + print(" job selected (e.g., 'Formatting Linux x64'), click the 'View more details on") + print(" Azure Pipelines' link.") + print("3. Select the 'Summary' tab.") + print("4. Open the 'Build artifacts published' entry.") + print("5. Find the link to the OS/architecture appropriate format patch file.") + print("6. Click on the link to download it.") + print("7. Unzip the patch file.") + print("8. git apply format.patch") + + if (returncode != 0) and (os.environ.get("TF_BUILD") == "True"): + print("##vso[task.logissue type=error](NETCORE_ENGINEERING_TELEMETRY=Build) Format job found errors, please apply the format patch.") + + return returncode if __name__ == '__main__': return_code = main(sys.argv[1:])