version: 2 aliases: - &defaults working_directory: ~/ghc - &prepare run: name: prepare-system command: .circleci/prepare-system.sh - &submodules run: name: submodules command: .circleci/fetch-submodules.sh - &build run: name: build command: .circleci/build.sh # Building bindist takes ~15 minutes without output, account for # that. no_output_timeout: "30m" - &collectartifacts run: name: collect artifacts # We need this because CircleCI expects a path without # wildcards but bindist archive name is not static command: | mkdir -p /tmp/artifacts pwd find . cp ghc*.tar.xz /tmp/artifacts jobs: "validate-x86_64-linux": resource_class: xlarge docker: - image: haskell:8.2 steps: # Make sure we have proper openssh before checkout: CircleCI git # does not check the repository out properly without it and also # takes 20 times longer than it should be. - run: name: install openssh command: | apt-get update -qq apt-get install -y openssh-client - checkout - *prepare - *submodules - *build - *collectartifacts - store-artifacts: path: /tmp/artifacts "validate-x86_64-freebsd": resource_class: xlarge docker: - image: tweag/toolchain-x86_64-freebsd environment: TARGET: FreeBSD steps: - run: name: install git command: | apt-get update -qq apt-get install -qy openssh-client - checkout - *prepare - *submodules - *build "validate-x86_64-darwin": macos: xcode: "9.0" steps: - checkout - *prepare - *submodules - *build - *collectartifacts - store-artifacts: path: /tmp/artifacts workflows: version: 2 validate: jobs: - validate-x86_64-linux # FreeBSD disabled: https://github.com/haskell/unix/issues/102 # - validate-x86_64-freebsd - validate-x86_64-darwin