forked from TokTok/c-toxcore
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a script to run Travis CI locally.
This isn't quite Travis, but close enough for local testing.
- Loading branch information
Showing
7 changed files
with
157 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
# This Docker build emulates roughly what Travis CI is doing. It is not exactly | ||
# the same (different tool versions) and success in this image may not | ||
# necessarily mean success on Travis. This image is also not automatically | ||
# tested, so it may get out of date. Send PRs if you use it and it's broken. | ||
# | ||
# For one, we use bionic, not xenial, because xenial's clang is way too old. | ||
FROM ubuntu:16.04 | ||
|
||
# Travis environment. | ||
RUN apt-get update && apt-get install --no-install-recommends -y \ | ||
apt-transport-https \ | ||
build-essential \ | ||
ca-certificates \ | ||
curl \ | ||
git \ | ||
pkg-config \ | ||
python-pip \ | ||
python-setuptools \ | ||
python3 \ | ||
software-properties-common \ | ||
wget \ | ||
&& apt-get clean \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \ | ||
&& apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main" \ | ||
&& apt-get update && apt-get install --no-install-recommends -y \ | ||
clang-6.0 \ | ||
clang-format-6.0 \ | ||
llvm-6.0 \ | ||
&& apt-get clean \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
RUN ls /usr/bin/clang-6.0 && ln -s /usr/bin/clang-6.0 /usr/bin/clang \ | ||
&& ls /usr/bin/clang++-6.0 && ln -s /usr/bin/clang++-6.0 /usr/bin/clang++ \ | ||
&& ls /usr/bin/clang-format-6.0 && ln -s /usr/bin/clang-format-6.0 /usr/bin/clang-format \ | ||
&& ls /usr/bin/opt-6.0 && ln -s /usr/bin/opt-6.0 /usr/bin/opt | ||
|
||
# Bionic's cmake is too old. | ||
RUN pip install --upgrade pip cmake | ||
|
||
# .travis.yml | ||
RUN apt-get update && apt-get install --no-install-recommends -y \ | ||
libconfig-dev \ | ||
libgtest-dev \ | ||
libopus-dev \ | ||
libsodium-dev \ | ||
libvpx-dev \ | ||
ninja-build \ | ||
pylint3 \ | ||
&& apt-get clean \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
# Set up travis user. | ||
RUN groupadd -r -g 1000 travis \ | ||
&& useradd --no-log-init -r -g travis -u 1000 travis \ | ||
&& mkdir -p /src/workspace /home/travis \ | ||
&& chown travis:travis /home/travis | ||
USER travis | ||
|
||
# Set up environment. | ||
ENV CC=gcc CXX=g++ \ | ||
PATH=/home/travis/.local/bin:$PATH \ | ||
TRAVIS_REPO_SLUG=TokTok/c-toxcore | ||
|
||
# Copy minimal files to run "cmake-linux install", so we can avoid rebuilding | ||
# astyle and other things when only source files change. | ||
RUN mkdir -p /home/travis/build/c-toxcore /home/travis/cache | ||
WORKDIR /home/travis/build/c-toxcore | ||
COPY --chown=travis:travis c-toxcore/.travis/ /home/travis/build/c-toxcore/.travis/ | ||
RUN .travis/cmake-linux install | ||
|
||
# Now copy the rest of the sources and run the build. | ||
COPY --chown=travis:travis . /home/travis/build/ | ||
RUN .travis/cmake-linux script |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#!/bin/bash | ||
|
||
set -eu | ||
|
||
readarray -t FILES <<<"$(git ls-files | sed -e 's,^,c-toxcore/,')" | ||
|
||
if [ -f .git ]; then | ||
cd .. | ||
tar -c "${FILES[@]}" "c-toxcore/.git" ".git/modules/c-toxcore" | | ||
docker build -f c-toxcore/other/docker/Dockerfile.ci - | ||
else | ||
cd .. | ||
tar -c "${FILES[@]}" "c-toxcore/.git" | | ||
docker build -f c-toxcore/other/docker/Dockerfile.ci - | ||
fi |