version: 2 jobs: build: working_directory: ~/mapnik/mapnik parallelism: 1 shell: /bin/bash --login environment: CIRCLE_ARTIFACTS: /tmp/circleci-artifacts CIRCLE_TEST_REPORTS: /tmp/circleci-test-results XCODE_SCHEME: 'no' XCODE_WORKSPACE: 'no' JOBS: 8 CCACHE_TEMPDIR: /tmp/.ccache-temp CCACHE_COMPRESS: 1 LLVM_VERSION: 3.9.1 # VM instead of a container) see https://circleci.com/docs/2.0/executor-types/ # To see the list of pre-built images that CircleCI provides for most common languages see # https://circleci.com/docs/2.0/circleci-images/ docker: - image: circleci/build-image:ubuntu-14.04-XXL-upstart-1189-5614f37 command: /sbin/init steps: - checkout # Prepare for artifact and test results collection equivalent to how it was done on 1.0. # In many cases you can simplify this from what is generated here. # 'See docs on artifact collection here https://circleci.com/docs/2.0/artifacts/' - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS # Checkout # This would typically go in either a build or a build-and-test job when using workflows # This is based on your 1.0 configuration file or project settings - run: git submodule update --init # Dependencies # This would typically go in either a build or a build-and-test job when using workflows # Restore the dependency cache - restore_cache: keys: # This branch if available - v1-dep-{{ .Branch }}- # Default branch if not - v1-dep-master- # Any branch if there are none on the default branch - this should be unnecessary if you have your default branch configured correctly - v1-dep- # This is based on your 1.0 configuration file or project settings - run: sudo rm -rf /var/cache/apt/archives && sudo ln -s ~/.apt-cache /var/cache/apt/archives && mkdir -p ~/.apt-cache/partial - run: sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test # This is based on your 1.0 configuration file or project settings - run: sudo apt-get update -y - run: sudo apt-get install -y libstdc++-5-dev xutils-dev # Save dependency cache - save_cache: key: v1-dep-{{ .Branch }}-{{ epoch }} paths: # This is a broad list of cache paths to include many possible development environments # These cache paths were specified in the 1.0 config - ~/.ccache - ~/.apt-cache # This is based on your 1.0 configuration file or project settings - run: ./bootstrap.sh - run: ./.mason/mason install clang++ ${LLVM_VERSION} - run: ./.mason/mason link clang++ ${LLVM_VERSION} - run: ./configure CC="$(pwd)/mason_packages/.link/bin/clang" CXX="$(pwd)/mason_packages/.link/bin/ccache $(pwd)/mason_packages/.link/bin/clang++ -Qunused-arguments" - run: make - run: nm src/libmapnik* | grep "GLIBCXX_3.4.2[0-9]" || true # This is based on your 1.0 configuration file or project settings - run: psql -c 'create database template_postgis;' - run: psql -c 'create extension postgis;' -d template_postgis # Test # This would typically be a build job when using workflows, possibly combined with build # This is based on your 1.0 configuration file or project settings - run: make test # Teardown # If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each # Save test results - store_test_results: path: /tmp/circleci-test-results # Save artifacts - store_artifacts: path: /tmp/circleci-artifacts - store_artifacts: path: /tmp/circleci-test-results