diff --git a/BuildServices.asciidoc b/BuildServices.asciidoc index 8d79aa2..6c36d9e 100644 --- a/BuildServices.asciidoc +++ b/BuildServices.asciidoc @@ -23,6 +23,63 @@ nim c -r Be aware that the available .deb packages will change over time. +## Building Nim projects on Circle CI v2.0 using Nim Devel + +Create .circleci/config.yml as: + +[source,yaml] +---- +version: 2 +jobs: + build: + machine: true + steps: + - run: echo 'export PATH=./Nim/bin:$PATH' >> $BASH_ENV + - checkout + # Reuse cached Nim compiler + - restore_cache: + key: compiler-0000 + - run: + command: | + if [ -d Nim ]; then + cd Nim + git fetch + if [ "$(git rev-parse HEAD)" == "$(git rev-parse @{u})" ]; then + echo "Nim is up to date" + build_nim=false + else + echo "pulling new Nim commits" + build_nim=true + git pull + fi + else + echo "cloning Nim for the first time" + build_nim=true + git clone --depth 1 https://github.com/nim-lang/Nim.git + cd Nim + git clone --depth 1 git://github.com/nim-lang/csources.git csources + cd csources + sh build.sh + cd .. + fi + if [ "$build_nim" = true ]; then + ./bin/nim c koch + ./koch boot -d:release + ./koch tools + fi + - save_cache: + key: compiler-0000 + paths: + - Nim + - run: nimble build -y + - run: nim c -r + - store_artifacts: + path: test-reports/ + destination: tr1 + - store_test_results: + path: test-reports/ +---- + ## Building Nim projects on Circle CI v2.0 with Docker On Circle CI 2.0 you can use Docker containers to perform builds. The following example is taken from the following guide and builds against the current Nim version on both Ubuntu and Alpine Linux: https://www.euantorano.co.uk/posts/nim-circle-ci/[Continuous Integration for Nim using Circle CI]