diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..24ac78369 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,81 @@ +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 diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 02c414772..000000000 --- a/circle.yml +++ /dev/null @@ -1,42 +0,0 @@ -machine: - xcode: - version: 7.3 - environment: - XCODE_SCHEME: "no" - XCODE_WORKSPACE: "no" - JOBS: 8 - CCACHE_TEMPDIR: /tmp/.ccache-temp - CCACHE_COMPRESS: 1 - LLVM_VERSION: 3.9.1 - -checkout: - post: - - git submodule update --init - -dependencies: - cache_directories: - - "~/.ccache" - - "~/.apt-cache" - pre: - # https://discuss.circleci.com/t/add-ability-to-cache-apt-get-programs/598/3 - - sudo rm -rf /var/cache/apt/archives && sudo ln -s ~/.apt-cache /var/cache/apt/archives && mkdir -p ~/.apt-cache/partial - - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - override: - - sudo apt-get update -y - - sudo apt-get install -y libstdc++-5-dev xutils-dev - -database: - pre: - - ./bootstrap.sh - - ./.mason/mason install clang++ ${LLVM_VERSION} - - ./.mason/mason link clang++ ${LLVM_VERSION} - - ./configure CC="$(pwd)/mason_packages/.link/bin/clang" CXX="$(pwd)/mason_packages/.link/bin/ccache $(pwd)/mason_packages/.link/bin/clang++ -Qunused-arguments" - - make - - nm src/libmapnik* | grep "GLIBCXX_3.4.2[0-9]" || true - override: - - psql -c 'create database template_postgis;' - - psql -c 'create extension postgis;' -d template_postgis - -test: - override: - - make test