diff --git a/BuildServices.asciidoc b/BuildServices.asciidoc index 9a200d7..0d1a9f1 100644 --- a/BuildServices.asciidoc +++ b/BuildServices.asciidoc @@ -3,113 +3,32 @@ Building your code on Circle CI is useful to check regressions against the master and devel branches of Nim. Same for your code documentation. -Configure the build: - -Under Test Commands >> Dependency Commands >> Pre-dependency commands: -[source,sh] ----- -wget http://http.us.debian.org/debian/pool/main/n/nim/nim_0.18.0-2_amd64.deb -wget http://http.us.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.0h-4_amd64.deb -sudo dpkg -i *_amd64.deb ----- - -Under Test Commands >> Test Commands >> Test Commands: -[source,sh] ----- -# This will fetch Nimble dependencies -nimble build -y -nim c -r ----- - -Be aware that the available .deb packages will change over time. - -## Building Nim projects on Circle CI v2.0 using choosenim - -choosenim allow picking fixed Nim versions or updating to the last stable or devel version +The Nim docker image contains the latest version. Use this .circleci/config.yml -[source,yaml] ---- -version: 2 -jobs: - build: - machine: true - steps: - - run: echo 'export PATH=~/.nimble/bin:$PATH' >> $BASH_ENV - - checkout - # Reuse cached Nim compiler - - restore_cache: - key: compiler-0002 - - run: - command: | - if [ -f ~/.nimble/bin/choosenim ]; then - echo "Updating Nim using choosenim" - choosenim stable - else - echo "Installing choosenim and Nim" - wget https://raw.githubusercontent.com/dom96/choosenim/master/scripts/choosenim-unix-init.sh - sh choosenim-unix-init.sh -y - fi - - save_cache: - key: compiler-0002 - paths: - - ~/.nimble - - ~/.choosenim - - run: - command: | - nimble build -y - # add here your tests ---- - -## Building Nim projects on Circle CI v2.0 using Nim Devel - -Create .circleci/config.yml as: - [source,yaml] ---- version: 2 jobs: build: - machine: true + docker: + - image: nimlang/nim steps: - - run: echo 'export PATH=./Nim/bin:$PATH' >> $BASH_ENV + - run: echo 'export PATH=~/.nimble/bin:$PATH' >> $BASH_ENV - checkout - # Reuse cached Nim compiler + # Reuse cached directories - restore_cache: - key: compiler-0000 + key: nim-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 + # Example: adding OS libraries + apt-get update + apt-get install -y --no-install-recommends libsodium23 - save_cache: - key: compiler-0000 + key: nim-0000 paths: - - Nim + - .nimble - run: nimble build -y - run: nim c -r - store_artifacts: