diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ff08a1b4b516e8c4c283a73b27faef1c7506bffc..8083023338a4f83b8314d934ce69a95f857bda48 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,10 +20,7 @@ build-all: echo "with-compiler: $GHC" >> cabal.project echo "packages: packages/*" >> cabal.project - ./scripts/patch-tool unpack_patch_all - - for pkg in `cat scripts/build-all.list`; do - echo "Building $pkg" - cabal new-install $pkg - done + - ./scripts/build-all.py image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV" tags: - x86_64-linux diff --git a/scripts/build-all.py b/scripts/build-all.py index d736e744a0782093133291978e0b529c76b98f7a..37ec6ea583c6f76417254152121dcbcc38547511 100755 --- a/scripts/build-all.py +++ b/scripts/build-all.py @@ -2,15 +2,22 @@ import subprocess from pathlib import Path +import json -packages = open('scripts/build-all.list').read().split('\n') -for pkg_version in packages: - if not (Path('packages') / pkg_version).exists(): - subprocess.check_call(['scripts/patch-tool', 'unpack-patch', 'patches/'+pkg_version+'.patch']) +def build_all(packages): + results = {} + for pkg_version in packages: + code = subprocess.call([ + 'cabal', 'new-build', pkg_version, + '--allow-newer=base,template-haskell', + '--ghc-option="-ddump-to-file -ddump-timings"' + ]) + results[pkg_version] = code -print(open('cabal.project.local').read()) -for pkg_version in packages: - #pkg, version = line.split(' ') - #pkg_version = '%s-%s' % (pkg, version) - subprocess.check_call(['cabal', 'new-install', pkg_version]) + return results +if __name__ == '__main__': + pkg_list = Path(__file__).parent / 'build-all.list' + packages = pkg_list.read_text().split('\n') + results = build_all(packages) + json.dump(results, open('build-all.json', 'w'))