├── Dockerfile └── README.md /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM circleci/ruby:2.7-node 2 | 3 | ENV XAR_VERSION "2.0.0" 4 | USER root 5 | 6 | # iTMSTransporter needs java installed 7 | # We also have to install make to install xar 8 | # And finally shellcheck 9 | RUN echo 'deb http://archive.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/jessie-backports.list \ 10 | && sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list \ 11 | && apt-get -o Acquire::Check-Valid-Until=false update \ 12 | && apt-get install --yes \ 13 | make \ 14 | shellcheck \ 15 | && apt-get clean \ 16 | && rm -rf /var/lib/apt/lists/* 17 | 18 | RUN apt-get install --yes libssl-dev 19 | 20 | WORKDIR /tmp 21 | 22 | RUN ls 23 | 24 | # Build xar 25 | # Original download location https://github.com/downloads/mackyle/xar/xar-$XAR_VERSION.tar.gz 26 | # Now using a fastlane fork that supports OpenSSL 1.1.0 27 | ADD https://github.com/fastlane/xar/archive/$XAR_VERSION.tar.gz . 28 | RUN tar -xzf $XAR_VERSION.tar.gz \ 29 | && mv xar-$XAR_VERSION/xar xar \ 30 | && cd xar \ 31 | && ./autogen.sh --noconfigure \ 32 | && ./configure \ 33 | && make 34 | 35 | ENV PATH $PATH:/usr/local/itms/bin 36 | 37 | # Java versions to be installed 38 | ENV JAVA_VERSION 8u131 39 | ENV JAVA_DEBIAN_VERSION 8u131-b11-1~bpo8+1 40 | ENV CA_CERTIFICATES_JAVA_VERSION 20161107~bpo8+1 41 | 42 | # Needed for fastlane to work 43 | ENV LANG C.UTF-8 44 | ENV LC_ALL C.UTF-8 45 | 46 | # Required for iTMSTransporter to find Java 47 | ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/jre 48 | 49 | # Install Python 50 | ARG BUILDDIR="/tmp/build" 51 | ARG PYTHON_VER="3.6.8" 52 | WORKDIR ${BUILDDIR} 53 | 54 | RUN apt-get update -o Acquire::Check-Valid-Until=false -qq && \ 55 | apt-get -o Acquire::Check-Valid-Until=false upgrade -y > /dev/null 2>&1 && \ 56 | apt-get install wget gcc make zlib1g-dev -y -qq > /dev/null 2>&1 && \ 57 | wget --quiet https://www.python.org/ftp/python/${PYTHON_VER}/Python-${PYTHON_VER}.tgz > /dev/null 2>&1 && \ 58 | tar zxf Python-${PYTHON_VER}.tgz && \ 59 | cd Python-${PYTHON_VER} && \ 60 | ./configure > /dev/null 2>&1 && \ 61 | make > /dev/null 2>&1 && \ 62 | make install > /dev/null 2>&1 && \ 63 | rm -rf ${BUILDDIR} 64 | 65 | USER circleci 66 | 67 | # Make xar 68 | RUN cd /tmp/xar \ 69 | && sudo make install \ 70 | && sudo rm -rf /tmp/* 71 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fastlane-docker 2 | 3 | A `Dockerfile` that is used on _fastlane_'s CIs which is configured for Ruby 2.7, Python 3.6.8, and Java 8. 4 | 5 | This is built to be used on a CI (primarly CircleCI) when needing to either test _fastlane_ on a Linux CI or test and deploy _fastlane_ docs using Linux. Using this `Dockerfile` is the most effecient way of using the required Ruby, Python, and Java versions for each build and keeping it consistent. 6 | 7 | ## Places being used 8 | 9 | - [fastlane/docs](https://github.com/fastlane/docs/blob/master/.circleci/config.yml) 10 | - [fastlane/fastlane](https://github.com/fastlane/fastlane/blob/master/.circleci/config.yml) 11 | 12 | ## Publishing a new version 13 | 14 | ``` 15 | docker build -t fastlanetools/ci:x.y.z ./ 16 | docker push fastlanetools/ci:x.y.z 17 | ``` 18 | --------------------------------------------------------------------------------