Skip to content

Commit

Permalink
build in a better way
Browse files Browse the repository at this point in the history
  • Loading branch information
friism committed May 30, 2015
1 parent e6b0e46 commit 98b120d
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 15 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ $ docker build -t my-user/mono-builder cedar-14/.
To build and upload new Mono version:

```term
$ docker run -v ${PWD}/cache:/var/cache -e AWS_ACCESS_KEY_ID=key -e AWS_SECRET_ACCESS_KEY=secret -e VERSION=3.2.8 -e STACK=cedar-14 my-user/mono-builder
$ docker run -v ${PWD}/cache:/var/cache -v ${PWD}/out:/var/out -e VERSION=4.0.1 -e STACK=cedar-14 my-user/mono-builder
```
18 changes: 10 additions & 8 deletions cedar-14/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
FROM ubuntu:trusty
FROM heroku/cedar:14
MAINTAINER friism

RUN apt-get -q update
RUN apt-get -q -y install curl gcc g++ make wget unzip
RUN apt-key adv --keyserver pgp.mit.edu --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

RUN wget -q https://github.com/rlmcpherson/s3gof3r/releases/download/v0.3.0/gof3r_linux_amd64_binary.zip
RUN unzip gof3r_linux_amd64_binary.zip
RUN mv gof3r_linux_amd64_binary/gof3r .
RUN rm -rf gof3r_linux_amd64_binary*
RUN echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.0.0 main" > /etc/apt/sources.list.d/mono-xamarin.list \
&& apt-get update \
&& apt-get install -y mono-devel ca-certificates-mono mono-vbnc \
&& rm -rf /var/lib/apt/lists/*

RUN apt-get -q update \
&& apt-get -q -y install curl gcc g++ make wget unzip \
&& rm -rf /var/lib/apt/lists/*

COPY build build
CMD ./build

28 changes: 22 additions & 6 deletions cedar-14/build
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
#!/usr/bin/env bash

set -e

if [ ! -f "/var/cache/mono-$VERSION.tar.bz2" ]; then
wget -q -O /var/cache/mono-$VERSION.tar.bz2 http://download.mono-project.com/sources/mono/mono-$VERSION.tar.bz2
fi
CACHE_DIR="/var/cache/mono-$VERSION"

tar jxf /var/cache/mono-$VERSION.tar.bz2
if [ ! -d "$CACHE_DIR" ]; then
git clone --recursive --depth 1 --branch mono-$VERSION https://github.com/mono/mono.git $CACHE_DIR
fi

rsync -r $CACHE_DIR . --exclude .git
cd mono-$VERSION

./autogen.sh
./configure --prefix=/app/mono \
--disable-moonlight --disable-nls --enable-minimal=aot,profiler,debug,logging \
--disable-libraries --disable-boehm --with-mcs-docs=no \
Expand All @@ -15,8 +20,19 @@ make && make install

cd /app

rm -rf mono/lib/mono/gac/EntityFramework* \
mono/lib/mono/gac/System.Windows.Forms* \
mono/lib/mono/gac/System.Data.Entity

find . -name "*.mdb" -delete
find mono -name *Entity* -exec rm -rf "{}" \;
find mono -name *Entity* -delete
find mono -name *System.Windows.Forms* -delete
find mono -name sqlmetal.exe -delete

find mono | xargs strip 2> /dev/null
rm -rf mono/lib/mono/gac/EntityFramework* mono/lib/mono/gac/System.Web* mono/lib/mono/gac/System.Windows.Forms*

tar -zcf - mono | /gof3r put --md5Check-off -b mono-dependencies -k $STACK/mono-$VERSION.tar.gz
MONO_ARCHIVE=mono-$VERSION.tar.gz
tar -zcf $MONO_ARCHIVE mono
rm -rf /var/out/$MONO_ARCHIVE
mv $MONO_ARCHIVE /var/out/.

0 comments on commit 98b120d

Please sign in to comment.