Skip to content

Commit

Permalink
Add autotools build to localbuild docker images.
Browse files Browse the repository at this point in the history
  • Loading branch information
iphydf committed May 5, 2020
1 parent 8c0fd40 commit 3851cfb
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 19 deletions.
6 changes: 6 additions & 0 deletions .hadolint.yaml
@@ -0,0 +1,6 @@
---
ignored:
- DL3007
- DL3008
- DL3013
- DL3018
23 changes: 23 additions & 0 deletions other/docker/autotools/Dockerfile
@@ -0,0 +1,23 @@
################################################
# autotools-linux
FROM localbuild/travis:1.0.0

USER root
RUN apt-get update && apt-get install --no-install-recommends -y \
autoconf \
automake \
libtool \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
USER travis

# Copy minimal files to run "autotools-linux install", so we can avoid
# rebuilding nacl 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/autotools-linux install

# Now copy the rest of the sources and run the build.
COPY --chown=travis:travis . /home/travis/build/
RUN .travis/autotools-linux script
14 changes: 14 additions & 0 deletions other/docker/cmake/Dockerfile
@@ -0,0 +1,14 @@
################################################
# cmake-linux
FROM localbuild/travis:1.0.0

# 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
22 changes: 14 additions & 8 deletions other/docker/run-ci
@@ -1,15 +1,21 @@
#!/bin/bash

set -eu
set -eux

STAGE="${1-cmake}"

readarray -t FILES <<<"$(git ls-files | sed -e 's,^,c-toxcore/,')"

FILES+=(c-toxcore/.git)

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 -
FILES+=(.git/modules/c-toxcore)
fi

cd ..
tar -c "${FILES[@]}" |
docker build -f "c-toxcore/other/docker/travis/Dockerfile" \
-t localbuild/travis:1.0.0 -
tar -c "${FILES[@]}" |
docker build -f "c-toxcore/other/docker/$STAGE/Dockerfile" \
-t "localbuild/$STAGE:1.0.0" -
12 changes: 1 addition & 11 deletions other/docker/Dockerfile.ci → other/docker/travis/Dockerfile
Expand Up @@ -22,6 +22,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

SHELL ["/bin/bash", "-o", "pipefail", "-c"]
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 \
Expand Down Expand Up @@ -62,14 +63,3 @@ USER travis
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

0 comments on commit 3851cfb

Please sign in to comment.