Merge pull request #18 from wreally/circle-ci

Setup tests to run on CircleCI [WIP]
This commit is contained in:
Jason Bosco 2018-04-01 00:11:34 -07:00 committed by GitHub
commit 325fa95da3
3 changed files with 65 additions and 18 deletions

32
.circleci/config.yml Normal file
View File

@ -0,0 +1,32 @@
version: 2
jobs:
build:
docker:
- image: typesense/typesense-development:latest
environment:
- PROJECT_DIR: /typesense
- TYPESENSE_VERSION: $CIRCLE_BRANCH-$CIRCLE_SHA1
working_directory: /typesense
steps:
- checkout
- run:
name: generate cache key source
command: git log --pretty=format:'%H' -n 1 -- cmake CMakeLists.txt build.sh > last-changed-git-sha-for-dependency-listing
- restore_cache:
keys:
- external-Linux-cache-{{ .Branch }}-{{ checksum "last-changed-git-sha-for-dependency-listing" }}
- external-Linux-cache-{{ .Branch }}
- external-Linux-cache
- run:
name: build
command: $PROJECT_DIR/build.sh
- save_cache:
key: external-Linux-cache-{{ .Branch }}-{{ checksum "last-changed-git-sha-for-dependency-listing" }}
paths:
- /typesense/external-Linux
- store_artifacts:
path: /typesense/build
destination: build
- run:
name: test
command: $PROJECT_DIR/build/typesense_test

View File

@ -1,30 +1,37 @@
FROM typesense/ubuntu-10-04-gcc:6.4.0
# docker build --file $PROJECT_DIR/docker/development.Dockerfile --tag typesense/typesense-development:latest $PROJECT_DIR/docker
#
# $ docker push typesense/typesense-development:latest
FROM typesense/ubuntu-10.04-gcc:6.5.0
ENV PATH /usr/local/gcc-6.4.0/bin/:$PATH
ENV LD_LIBRARY_PATH /usr/local/gcc-6.4.0/lib64
RUN apt-get update
RUN apt-get install -y python-software-properties \
&& add-apt-repository ppa:git-core/ppa \
&& apt-get update \
&& apt-get install -y \
zlib1g-dev \
liblist-compare-perl \
libidn11 \
git
RUN apt-get install -y zlib1g-dev
RUN apt-get install -y liblist-compare-perl
RUN curl -o /opt/cmake-3.3.2-Linux-x86_64.tar.gz -L https://cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz
ADD https://cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz /opt/
RUN tar -C /opt -xvzf /opt/cmake-3.3.2-Linux-x86_64.tar.gz
RUN cp -r /opt/cmake-3.3.2-Linux-x86_64/* /usr
RUN apt-get install libidn11
RUN curl -o /opt/snappy_1.1.3.orig.tar.gz -L https://launchpad.net/ubuntu/+archive/primary/+files/snappy_1.1.3.orig.tar.gz
ADD https://launchpad.net/ubuntu/+archive/primary/+files/snappy_1.1.3.orig.tar.gz /opt/
RUN tar -C /opt -xf /opt/snappy_1.1.3.orig.tar.gz
RUN mkdir /opt/snappy-1.1.3/build && cd /opt/snappy-1.1.3/build && ../configure && make && make install
RUN curl -o /opt/openssl-1.0.2k.tar.gz -L https://openssl.org/source/openssl-1.0.2k.tar.gz
ADD https://openssl.org/source/openssl-1.0.2k.tar.gz /opt/
RUN tar -C /opt -xvzf /opt/openssl-1.0.2k.tar.gz
RUN cd /opt/openssl-1.0.2k && sh ./config --prefix=/usr --openssldir=/usr zlib-dynamic
RUN make -C /opt/openssl-1.0.2k depend
RUN make -C /opt/openssl-1.0.2k -j4
RUN make -C /opt/openssl-1.0.2k install
RUN curl -L -o /opt/curl-7.55.1.tar.bz2 https://github.com/curl/curl/releases/download/curl-7_55_1/curl-7.55.1.tar.bz2
ADD https://github.com/curl/curl/releases/download/curl-7_55_1/curl-7.55.1.tar.bz2 /opt/
RUN tar -C /opt -xf /opt/curl-7.55.1.tar.bz2
RUN cd /opt/curl-7.55.1 && ./configure && make && make install

View File

@ -1,18 +1,26 @@
# $ docker build --file $PROJECT_DIR/docker/ubuntu-10-04-gcc.Dockerfile --tag typesense/ubuntu-10.04-gcc:latest --tag typesense/ubuntu-10.04-gcc:6.5 $PROJECT_DIR/docker
#
# NOTE: Default build image is bloated. Before publishing, export from a container to squash the image:
# $ docker run -it typesense/ubuntu-10-04-gcc:6.4.0 bash -c "exit"
# $ docker run -it typesense/ubuntu-10.04-gcc:latest bash -c "exit"
# $ docker ps -a | grep typesense
# $ docker export <container_id> | docker import - typesense/ubuntu-10-04-gcc:6.4.0
# $ docker export <container_id> | docker import - typesense/ubuntu-10.04-gcc:latest
# $ docker push typesense/ubuntu-10.04-gcc
FROM ubuntu:10.04
RUN sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y build-essential
RUN apt-get update && apt-get install -y \
build-essential \
tar \
curl \
libmpfr-dev \
libgmp3-dev \
libmpc-dev \
flex \
bison \
zlib1g-dev
RUN apt-get -y install curl tar
RUN apt-get -y install libmpfr-dev libgmp3-dev libmpc-dev flex bison zlib1g-dev
RUN curl -o /opt/gcc-6.4.0.tar.gz -L http://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.gz
ADD https://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.gz /opt/
RUN tar -C /opt -xf /opt/gcc-6.4.0.tar.gz
RUN mkdir /opt/gcc-6.4.0/build && cd /opt/gcc-6.4.0/build && ../configure --disable-checking --enable-languages=c,c++ \