Browse Source

Boilerplate for OSX, use images instead of dockerfiles, upgrades travis host, easy to test locally

merge-requests/365/head
Jørgen Lien Sellæg 10 years ago
parent
commit
1004645e6b
  1. 22
      .travis.yml
  2. 22
      ci/compile_container.sh
  3. 14
      ci/entrypoint.sh
  4. 6
      ci/fedora-23.build
  5. 3
      ci/fedora-23.docker
  6. 16
      ci/static_analysis.sh
  7. 6
      ci/ubuntu-16.04.build
  8. 4
      ci/ubuntu-16.04.docker
  9. 22
      ci/update_travis.sh

22
.travis.yml

@ -1,27 +1,19 @@
sudo: required sudo: required
language: cpp
env: env:
- distribution: ubuntu - distribution: ubuntu
version: 16.04
init: /sbin/init
run_opts: ""
- distribution: fedora - distribution: fedora
version: 23 - distribution: arch
init: /sbin/init - distribution: debian-testing
run_opts: "" - distribution: debian
services: services:
- docker - docker
before_install: before_install:
- sudo docker pull ${distribution}:${version} - ./ci/update_travis.sh
- sudo docker build --rm=true --file=ci/${distribution}-${version}.docker --tag=${distribution}-${version}:jucipp ci
script: script:
- container_id=$(mktemp) - CXX=clang++ CC=clang ./ci/compile_container.sh
- sudo docker run --detach --volume="${PWD}":/home/:rw ${run_opts} ${distribution}-${version}:jucipp "${init}" > "${container_id}" - ./ci/compile_container.sh
- ./ci/static_analysis.sh
- sudo docker exec "$(cat ${container_id})" /home/ci/${distribution}-${version}.build
- sudo docker stop "$(cat ${container_id})"

22
ci/compile_container.sh

@ -0,0 +1,22 @@
#!/bin/bash
function linux () {
cd ci || exit
sudo rm ../build -rf
sudo docker run -it \
-e "CXX=$CXX" \
-e "CC=$CC" \
-e "make_command=$make_command" \
-e "cmake_command=$cmake_command" \
-e "distribution=$distribution" \
-v "$PWD/../:/jucipp" \
--entrypoint="/jucipp/ci/entrypoint.sh" \
"cppit/jucipp:$distribution"
}
#TODO Should run compile/install instructions for osx
function osx () {
true
}
$TRAVIS_OS_NAME

14
ci/entrypoint.sh

@ -0,0 +1,14 @@
#!/bin/bash
if [ "${cmake_command}" == "" ]; then
cmake_command="cmake -DCMAKE_CXX_FLAGS=\"-Werror\" .."
fi
if [ "${make_command}" == "" ]; then
make_command="make -j 2"
fi
cd jucipp || exit
mkdir -p build && cd build || exit
sh -c "${cmake_command}" || exit
exec sh -c "${make_command}"

6
ci/fedora-23.build

@ -1,6 +0,0 @@
#!/bin/bash
cd /home &&
mkdir build &&
cd build &&
cmake -DCMAKE_CXX_COMPILER=g++ .. &&
make

3
ci/fedora-23.docker

@ -1,3 +0,0 @@
FROM fedora:23
RUN dnf install -y git cmake make gcc-c++ clang-devel clang lldb-devel boost-devel gtksourceviewmm3-devel gtkmm30-devel aspell-devel aspell-en

16
ci/static_analysis.sh

@ -0,0 +1,16 @@
#!/bin/bash
function linux () {
cd ci || exit
sudo docker run -it \
-v "${PWD}/../:/jucipp/" \
"cppit/jucipp:${distribution}" \
sh -c "cd jucipp/build && scan-build -o ../html_${distribution} --status-bugs make"
}
#TODO should do static analysis on build
function osx () {
true
}
$TRAVIS_OS_NAME

6
ci/ubuntu-16.04.build

@ -1,6 +0,0 @@
#!/bin/bash
cd /home &&
mkdir build &&
cd build &&
cmake -DCMAKE_CXX_COMPILER=g++ .. &&
make

4
ci/ubuntu-16.04.docker

@ -1,4 +0,0 @@
FROM ubuntu:16.04
RUN apt-get update
RUN apt-get install -y git cmake make g++ libclang-3.5-dev liblldb-3.5-dev clang-format-3.5 pkg-config libboost-filesystem-dev libboost-regex-dev libgtksourceviewmm-3.0-dev aspell-en libaspell-dev

22
ci/update_travis.sh

@ -0,0 +1,22 @@
#!/bin/bash
function linux () {
sudo apt-get update
sudo apt-get purge lxc-docker
sudo apt-get install --yes --force-yes -o Dpkg::Options::="--force-confnew" linux-image-extra-$(uname -r) docker-engine
sudo service docker stop || exit
sudo rm -rf /var/lib/docker || exit
sudo service docker start || exit
}
# TODO method should update osx, brew, packages etc needed for juCi++
function osx () {
brew update
brew rm llvm
brew doctor
brew upgrade
brew install --with-clang --with-lldb llvm
brew install cmake pkg-config boost homebrew/x11/gtksourceviewmm3 aspell clang-format
}
$TRAVIS_OS_NAME
Loading…
Cancel
Save