diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000000000..4f747fe962d1b --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,80 @@ +version: 2 +workflows: + version: 2 + linux-builds: + jobs: + - build-i686 +# - build-x86_64 + +jobs: + build-i686: + docker: + - image: circleci/python:2.7 + environment: + JULIA_CPU_CORES: 6 + JULIA_TEST_MAXRSS_MB: 800 + ARCH: i686 + steps: &steps + - run: | # install build dependencies + sudo apt-get install -y g++-4.8-multilib gfortran-4.8-multilib \ + time ccache bar && + for prog in gcc g++ gfortran; do + sudo ln -s /usr/bin/$prog-4.8 /usr/local/bin/$prog; + done + - checkout # circle ci code checkout step +# (FIXME: need to unset url."ssh://git@github.com".insteadOf or libgit2 tests fail) + - run: | # checkout merge commit, set versioning info and Make.user variables + git config --global --unset url."ssh://git@github.com".insteadOf && + if [ -n "$CIRCLE_PR_NUMBER" ]; then + git fetch origin +refs/pull/$CIRCLE_PR_NUMBER/merge && + git checkout -qf FETCH_HEAD; + fi && + make -C base version_git.jl.phony && + echo "override ARCH = $ARCH" | tee -a Make.user && + for var in FORCE_ASSERTIONS LLVM_ASSERTIONS USECCACHE NO_GIT; do + echo "override $var = 1" | tee -a Make.user; + done && + echo "$ARCH $HOME $(date +%Y%W)" | tee /tmp/weeknumber + - restore_cache: # silly to take a checksum of the tag file here instead of + keys: # its contents but this is the only thing that works on circle + - ccache-{{ checksum "/tmp/weeknumber" }} + - run: | # compile julia deps + contrib/download_cmake.sh && + make -j8 -C deps || make + - run: | # build julia, output ccache stats when done + make -j8 all && + make prefix=/tmp/julia install && + ccache -s && + make build-stats + - run: | # move source tree out of the way, run tests from install tree + cd .. && + mv project julia-src && + /tmp/julia/bin/julia -e 'versioninfo()' && + /tmp/julia/bin/julia --precompiled=no -e 'true' && + /tmp/julia/bin/julia-debug --precompiled=no -e 'true' && + pushd /tmp/julia/share/julia/test && + /tmp/julia/bin/julia --check-bounds=yes runtests.jl all --skip socket | bar -i 30 && + /tmp/julia/bin/julia --check-bounds=yes runtests.jl libgit2-online download pkg && + popd && + mkdir /tmp/embedding-test && + make check -C /tmp/julia/share/doc/julia/examples/embedding \ + JULIA=/tmp/julia/bin/julia BIN=/tmp/embedding-test \ + "$(cd julia-src && make print-CC)" && + mv julia-src project +# - run: cd project && make -C doc deploy +# - run: +# command: sudo dmesg +# when: on_fail + - save_cache: + key: ccache-{{ checksum "/tmp/weeknumber" }} + paths: + - ~/.ccache + +# build-x86_64: +# docker: +# - image: circleci/python:2.7 +# environment: +# JULIA_CPU_CORES: 6 +# JULIA_TEST_MAXRSS_MB: 800 +# ARCH: x86_64 +# steps: *steps diff --git a/.travis.yml b/.travis.yml index 9b326e8bf7e14..779b3cf2d1893 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,21 +3,21 @@ sudo: false dist: trusty matrix: include: - - os: linux - env: ARCH="i686" - compiler: "g++ -m32" - addons: - apt: - packages: - - libssl1.0.0 - - bar - - time - - gcc-multilib - - g++-multilib - - make:i386 - - libssl-dev:i386 - - gfortran - - gfortran-multilib +# - os: linux +# env: ARCH="i686" +# compiler: "g++ -m32" +# addons: +# apt: +# packages: +# - libssl1.0.0 +# - bar +# - time +# - gcc-multilib +# - g++-multilib +# - make:i386 +# - libssl-dev:i386 +# - gfortran +# - gfortran-multilib - os: linux env: ARCH="x86_64" compiler: "g++ -m64"