Skip to content

Instantly share code, notes, and snippets.

@o-vitaliy
Created December 16, 2022 17:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save o-vitaliy/dbefe3930e0d9c29584a81e69b48964b to your computer and use it in GitHub Desktop.
Save o-vitaliy/dbefe3930e0d9c29584a81e69b48964b to your computer and use it in GitHub Desktop.
import os
from pathlib import Path
import time
current_dir = str(Path().resolve())
projects = ["59-modules", "33-modules", "1-module"]
def logDir(project):
return current_dir + "/logs_" + project
def runTaskForProjects(task, log=""):
for project in projects:
log_to = ""
if log != "":
log_to = " >> " + logDir(project) + "/" + log + ".log"
start = time.time()
os.system("cd " + current_dir + "/" + project +
" && ./gradlew " + task + " " + log_to)
end = time.time()
if log != "":
print(project + " : " + task + " : " + str(int(end - start)))
def cleanProjects():
runTaskForProjects("clean -q")
def main():
# create folders for logs
print("create folders for logs")
for project in projects:
os.makedirs(logDir(project), exist_ok=True)
# stop gradle
print("\nstop gradle")
os.system("cd " + current_dir + "/" + projects[0] + " && ./gradlew --stop")
# run first assemble task to be sure all dependecies are cached
print("\nrun first assemble task to be sure all dependecies are cached")
# runTaskForProjects("assembleDevDebug -q")
# clean projects before running checks
print("\nclean projects before running checks")
cleanProjects()
tries = range(5)
# run assembleDevDebug --offline
for i in tries:
print("\nrun assembleDevDebug --offline " + str(i))
runTaskForProjects("assembleDevDebug --offline",
"assembleDevDebug_offline-" + str(i))
runTaskForProjects("clean", "clean-"+str(i))
# run assembleDevDebug
for i in tries:
print("\nrun assembleDevDebug " + str(i))
runTaskForProjects("assembleDevDebug", "assembleDevDebug-"+str(i))
cleanProjects()
# run assembleDevRelease
for i in tries:
print("\nrun assembleDevRelease " + str(i))
runTaskForProjects("assembleDevRelease",
"assembleDevRelease-" + str(i))
cleanProjects()
runTaskForProjects("assembleDevDebug -q")
# run assembleDevDebug
for i in tries:
print("\nrun assembleDevDebug " + str(i))
runTaskForProjects("assembleDevDebug", "assembleDevDebug-"+str(i))
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment