aboutsummaryrefslogtreecommitdiff
path: root/ci/docker
diff options
context:
space:
mode:
Diffstat (limited to 'ci/docker')
-rw-r--r--ci/docker/exherbo/paludis-exherbo-gcc/Dockerfile29
-rwxr-xr-xci/docker/exherbo/paludis-exherbo-gcc/build.sh9
-rw-r--r--ci/docker/exherbo/paludis-exherbo-gcc/config/options/00_build_options.conf1
-rw-r--r--ci/docker/exherbo/paludis-exherbo-gcc/config/options/01_target_i686-pc-linux-gnu.conf1
-rw-r--r--ci/docker/exherbo/paludis-exherbo-gcc/config/options/01_target_x86_64-pc-linux-gnu.conf1
-rw-r--r--ci/docker/exherbo/paludis-exherbo-gcc/config/options/10_paludis.conf50
-rw-r--r--ci/docker/exherbo/paludis-exherbo-gcc/config/sets/paludis-deps.conf30
-rw-r--r--ci/docker/gentoo/paludis-gentoo/Dockerfile18
-rwxr-xr-xci/docker/gentoo/paludis-gentoo/build.sh4
-rw-r--r--ci/docker/gentoo/paludis-gentoo/config/package.accept_keywords14
-rw-r--r--ci/docker/gentoo/paludis-gentoo/config/package.mask1
-rw-r--r--ci/docker/gentoo/paludis-gentoo/config/package.use9
-rw-r--r--ci/docker/gentoo/paludis-gentoo/config/sets/paludis-deps17
-rwxr-xr-xci/docker/update-images.sh7
14 files changed, 191 insertions, 0 deletions
diff --git a/ci/docker/exherbo/paludis-exherbo-gcc/Dockerfile b/ci/docker/exherbo/paludis-exherbo-gcc/Dockerfile
new file mode 100644
index 000000000..fadf75684
--- /dev/null
+++ b/ci/docker/exherbo/paludis-exherbo-gcc/Dockerfile
@@ -0,0 +1,29 @@
+FROM exherbo/exherbo-x86_64-pc-linux-gnu-base:latest
+MAINTAINER Marvin Schmidt <marv@exherbo.org>
+
+# Switch to option.conf.d layout
+RUN rm /etc/paludis/options.conf \
+ && mkdir /etc/paludis/options.conf.d
+
+COPY ./config/options/* /etc/paludis/options.conf.d/
+COPY ./config/sets/paludis-deps.conf /etc/paludis/sets/
+
+RUN chgrp tty /dev/tty \
+ && eclectic env update \
+ && source /etc/profile \
+ && cave resolve -1z repository/{media,pyro,python,scientific,x11} -x \
+ && cave resolve -1z -Ks -ks -x \
+ -o dev-python/sphinxcontrib-websupport \
+ --recommendations ignore \
+ --suggestions ignore \
+ paludis-deps
+
+# Clean up
+RUN rm -fr \
+ /var/log/paludis* \
+ /var/cache/paludis/distfiles/* \
+ /var/tmp/paludis/build/*
+
+# Add non-privileged user
+RUN useradd -M builder
+USER builder
diff --git a/ci/docker/exherbo/paludis-exherbo-gcc/build.sh b/ci/docker/exherbo/paludis-exherbo-gcc/build.sh
new file mode 100755
index 000000000..9a81212be
--- /dev/null
+++ b/ci/docker/exherbo/paludis-exherbo-gcc/build.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+# vim: set sw=4 sts=4 ts=4 et tw=80 :
+
+docker build \
+ --no-cache \
+ --rm \
+ --pull \
+ --tag paludis/exherbo-gcc \
+ .
diff --git a/ci/docker/exherbo/paludis-exherbo-gcc/config/options/00_build_options.conf b/ci/docker/exherbo/paludis-exherbo-gcc/config/options/00_build_options.conf
new file mode 100644
index 000000000..123f628b2
--- /dev/null
+++ b/ci/docker/exherbo/paludis-exherbo-gcc/config/options/00_build_options.conf
@@ -0,0 +1 @@
+*/* BUILD_OPTIONS: jobs=2
diff --git a/ci/docker/exherbo/paludis-exherbo-gcc/config/options/01_target_i686-pc-linux-gnu.conf b/ci/docker/exherbo/paludis-exherbo-gcc/config/options/01_target_i686-pc-linux-gnu.conf
new file mode 100644
index 000000000..4a00e6127
--- /dev/null
+++ b/ci/docker/exherbo/paludis-exherbo-gcc/config/options/01_target_i686-pc-linux-gnu.conf
@@ -0,0 +1 @@
+*/* TARGETS: i686-pc-linux-gnu
diff --git a/ci/docker/exherbo/paludis-exherbo-gcc/config/options/01_target_x86_64-pc-linux-gnu.conf b/ci/docker/exherbo/paludis-exherbo-gcc/config/options/01_target_x86_64-pc-linux-gnu.conf
new file mode 100644
index 000000000..fc2e8ee63
--- /dev/null
+++ b/ci/docker/exherbo/paludis-exherbo-gcc/config/options/01_target_x86_64-pc-linux-gnu.conf
@@ -0,0 +1 @@
+*/* TARGETS: x86_64-pc-linux-gnu
diff --git a/ci/docker/exherbo/paludis-exherbo-gcc/config/options/10_paludis.conf b/ci/docker/exherbo/paludis-exherbo-gcc/config/options/10_paludis.conf
new file mode 100644
index 000000000..3eca4d8eb
--- /dev/null
+++ b/ci/docker/exherbo/paludis-exherbo-gcc/config/options/10_paludis.conf
@@ -0,0 +1,50 @@
+*/* BUILD_OPTIONS: -recommended_tests
+
+dev-lang/python sqlite
+
+dev-libs/boost python PYTHON_ABIS: 2.7
+
+dev-python/Babel PYTHON_ABIS: 2.7
+dev-python/Cython PYTHON_ABIS: 2.7
+dev-python/Jinja2 PYTHON_ABIS: 2.7
+dev-python/MarkupSafe PYTHON_ABIS: 2.7
+dev-python/Pygments PYTHON_ABIS: 2.7
+dev-python/Sphinx PYTHON_ABIS: 2.7
+dev-python/alabaster PYTHON_ABIS: 2.7
+dev-python/asn1crypto PYTHON_ABIS: 2.7
+dev-python/atomicwrites PYTHON_ABIS: 2.7
+dev-python/attrs PYTHON_ABIS: 2.7
+dev-python/certifi PYTHON_ABIS: 2.7
+dev-python/cffi PYTHON_ABIS: 2.7
+dev-python/chardet PYTHON_ABIS: 2.7
+dev-python/coverage PYTHON_ABIS: 2.7
+dev-python/cryptography PYTHON_ABIS: 2.7
+dev-python/docutils PYTHON_ABIS: 2.7
+dev-python/enum34 PYTHON_ABIS: 2.7
+dev-python/funcsigs PYTHON_ABIS: 2.7
+dev-python/hypothesis PYTHON_ABIS: 2.7
+dev-python/idna PYTHON_ABIS: 2.7
+dev-python/imagesize PYTHON_ABIS: 2.7
+dev-python/ipaddress PYTHON_ABIS: 2.7
+dev-python/more-itertools PYTHON_ABIS: 2.7
+dev-python/numpy PYTHON_ABIS: 2.7
+dev-python/packaging PYTHON_ABIS: 2.7
+dev-python/pathlib2 PYTHON_ABIS: 2.7
+dev-python/pluggy PYTHON_ABIS: 2.7
+dev-python/py PYTHON_ABIS: 2.7
+dev-python/pycparser PYTHON_ABIS: 2.7
+dev-python/pyopenssl PYTHON_ABIS: 2.7
+dev-python/pyparsing PYTHON_ABIS: 2.7
+dev-python/pytest PYTHON_ABIS: 2.7
+dev-python/pytest-runner PYTHON_ABIS: 2.7
+dev-python/pytz PYTHON_ABIS: 2.7
+dev-python/requests PYTHON_ABIS: 2.7
+dev-python/scandir PYTHON_ABIS: 2.7
+dev-python/setuptools PYTHON_ABIS: 2.7
+dev-python/setuptools_scm PYTHON_ABIS: 2.7
+dev-python/six PYTHON_ABIS: 2.7
+dev-python/snowballstemmer PYTHON_ABIS: 2.7
+dev-python/sphinxcontrib-websupport PYTHON_ABIS: 2.7
+dev-python/typing PYTHON_ABIS: 2.7
+dev-python/urllib3 PYTHON_ABIS: 2.7
+dev-python/zopeinterface PYTHON_ABIS: 2.7
diff --git a/ci/docker/exherbo/paludis-exherbo-gcc/config/sets/paludis-deps.conf b/ci/docker/exherbo/paludis-exherbo-gcc/config/sets/paludis-deps.conf
new file mode 100644
index 000000000..c3868b000
--- /dev/null
+++ b/ci/docker/exherbo/paludis-exherbo-gcc/config/sets/paludis-deps.conf
@@ -0,0 +1,30 @@
+# System
+* app-shells/bash
+
+# Documentation
+* app-doc/asciidoc
+* app-doc/doxygen
+* app-text/tidy
+* app-text/xmlto
+* dev-python/Sphinx
+* dev-ruby/syntax
+
+# Tests
+* dev-cpp/gtest
+
+# Bindings
+* dev-libs/boost
+* dev-lang/python:2.7
+* dev-lang/ruby:2.5
+
+# Search index
+* dev-db/sqlite:3
+
+# XML things
+* dev-libs/libxml2:2.0
+
+# Pbins
+* app-arch/libarchive
+
+# gemcutter
+* dev-libs/jansson
diff --git a/ci/docker/gentoo/paludis-gentoo/Dockerfile b/ci/docker/gentoo/paludis-gentoo/Dockerfile
new file mode 100644
index 000000000..fa08311d8
--- /dev/null
+++ b/ci/docker/gentoo/paludis-gentoo/Dockerfile
@@ -0,0 +1,18 @@
+FROM gentoo/portage:latest as portage
+FROM gentoo/stage3-amd64:latest
+
+# copy the entire portage volume in
+COPY --from=portage /usr/portage /usr/portage
+
+COPY ./config/package.use /etc/portage/
+COPY ./config/package.mask /etc/portage/
+COPY ./config/package.accept_keywords /etc/portage/
+COPY ./config/sets/paludis-deps /etc/portage/sets/
+
+RUN emerge --update --newuse --deep -v @world \
+ && emerge --update --newuse --deep -v @paludis-deps \
+ && rm -rf /usr/portage/*
+
+# Unprivileged user
+RUN useradd -M builder
+USER builder
diff --git a/ci/docker/gentoo/paludis-gentoo/build.sh b/ci/docker/gentoo/paludis-gentoo/build.sh
new file mode 100755
index 000000000..ef7ba5072
--- /dev/null
+++ b/ci/docker/gentoo/paludis-gentoo/build.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+# vim: set sw=4 sts=4 ts=4 et tw=80 :
+
+docker build --no-cache --rm --pull -t paludis/gentoo-gcc .
diff --git a/ci/docker/gentoo/paludis-gentoo/config/package.accept_keywords b/ci/docker/gentoo/paludis-gentoo/config/package.accept_keywords
new file mode 100644
index 000000000..a0be4ae36
--- /dev/null
+++ b/ci/docker/gentoo/paludis-gentoo/config/package.accept_keywords
@@ -0,0 +1,14 @@
+# required by app-crypt/rhash-1.3.5::gentoo[ssl,-libressl]
+# required by dev-util/cmake-3.9.6::gentoo
+# required by media-libs/openjpeg-2.3.0::gentoo
+# required by app-text/ghostscript-gpl-9.21::gentoo
+# required by app-doc/doxygen-1.8.14-r1::gentoo
+# required by @selected
+# required by @world (argument)
+=dev-libs/openssl-1.0.2o-r6 ~amd64
+
+# required by dev-libs/boost-1.66.0::gentoo
+# required by =dev-libs/boost-1.66.0 (argument)
+=dev-util/boost-build-1.66.0 **
+# required by =dev-libs/boost-1.66.0 (argument)
+=dev-libs/boost-1.66.0 **
diff --git a/ci/docker/gentoo/paludis-gentoo/config/package.mask b/ci/docker/gentoo/paludis-gentoo/config/package.mask
new file mode 100644
index 000000000..1e5cf13ad
--- /dev/null
+++ b/ci/docker/gentoo/paludis-gentoo/config/package.mask
@@ -0,0 +1 @@
+>=dev-libs/boost-1.65
diff --git a/ci/docker/gentoo/paludis-gentoo/config/package.use b/ci/docker/gentoo/paludis-gentoo/config/package.use
new file mode 100644
index 000000000..1e70c7608
--- /dev/null
+++ b/ci/docker/gentoo/paludis-gentoo/config/package.use
@@ -0,0 +1,9 @@
+# required by dev-python/sqlalchemy-1.2.7::gentoo[python_targets_python3_5]
+# required by dev-python/sphinxcontrib-websupport-1.0.1-r1::gentoo
+# required by dev-python/sphinx-1.6.5::gentoo[-test]
+# required by dev-python/sphinx (argument)
+dev-lang/python sqlite
+
+dev-libs/boost python
+
+*/* -ruby_targets_ruby23 ruby_targets_ruby24
diff --git a/ci/docker/gentoo/paludis-gentoo/config/sets/paludis-deps b/ci/docker/gentoo/paludis-gentoo/config/sets/paludis-deps
new file mode 100644
index 000000000..4cc72ae03
--- /dev/null
+++ b/ci/docker/gentoo/paludis-gentoo/config/sets/paludis-deps
@@ -0,0 +1,17 @@
+app-doc/doxygen
+app-text/asciidoc
+app-text/htmltidy
+app-text/xmlto
+dev-python/sphinx
+dev-ruby/syntax
+
+dev-cpp/gtest
+
+dev-libs/boost
+dev-lang/ruby:2.4
+
+app-arch/libarchive
+
+dev-db/sqlite:3
+
+dev-util/ninja
diff --git a/ci/docker/update-images.sh b/ci/docker/update-images.sh
new file mode 100755
index 000000000..c7fca8310
--- /dev/null
+++ b/ci/docker/update-images.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+# vim: set sw=4 sts=4 ts=4 et tw=80 :
+
+docker build -t paludis/exherbo-gcc exherbo/paludis-exherbo-gcc
+
+docker build -t paludis/gentoo-gcc gentoo/paludis-gentoo-gcc
+