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 3, 2020
1 parent 4efe541 commit f310272
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 19 deletions.
23 changes: 23 additions & 0 deletions other/docker/autotools/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
################################################
# autotools-linux
FROM localbuild/travis

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
38 changes: 38 additions & 0 deletions other/docker/cmake/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
################################################
# cmake-linux
FROM localbuild/travis

# 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

################################################
# autotools-linux
FROM travis AS autotools

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 "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/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
22 changes: 14 additions & 8 deletions other/docker/run-ci
Original file line number Diff line number Diff line change
@@ -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 -
tar -c "${FILES[@]}" |
docker build -f "c-toxcore/other/docker/$STAGE/Dockerfile" \
-t "localbuild/$STAGE" -
11 changes: 0 additions & 11 deletions other/docker/Dockerfile.ci → other/docker/travis/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,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 f310272

Please sign in to comment.