diff --git a/config-joey.hs b/config-joey.hs index 2f84fbb..1f5ce0d 100644 --- a/config-joey.hs +++ b/config-joey.hs @@ -98,6 +98,7 @@ hosts = -- (o) ` & Docker.docked hosts "i386-git-annex-builder" & Docker.docked hosts "armel-git-annex-builder-companion" & Docker.docked hosts "armel-git-annex-builder" + & Docker.docked hosts "android-git-annex-builder" & Docker.garbageCollected `period` Daily & Apt.buildDep ["git-annex"] `period` Daily @@ -196,6 +197,7 @@ hosts = -- (o) ` , GitAnnexBuilder.standardContainer dockerImage "i386" 45 "2h" , GitAnnexBuilder.armelCompanionContainer dockerImage , GitAnnexBuilder.armelContainer dockerImage "1 3 * * *" "5h" + , GitAnnexBuilder.androidContainer dockerImage "1 1 * * *" "3h" ] ++ monsters -- This is my standard system setup. diff --git a/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs b/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs index 8055a60..13f1ac1 100644 --- a/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs +++ b/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs @@ -103,6 +103,24 @@ standardContainer dockerImage arch buildminute timeout = Docker.container (arch & Apt.unattendedUpgrades & builder arch (show buildminute ++ " * * * *") timeout True +-- Android is cross-built in a Debian i386 container, using the Android NDK. +androidContainer :: (System -> Docker.Image) -> Cron.CronTimes -> TimeOut -> Host +androidContainer dockerImage crontimes timeout = Docker.container "android-git-annex-builder" + (dockerImage $ System (Debian Stable) "i386") + & Apt.stdSourcesList Stable + & Apt.unattendedUpgrades + & builder "android" crontimes timeout True + -- Use git-annex's android chroot setup script, which will install + -- ghc-android and the NDK, etc, in the home directory of the + -- builder user. + & scriptProperty + [ "cd " ++ builddir ++ " && ./standalone/android/buildchroot-inchroot" + ] + -- TODO: automate installing haskell libs + -- (Currently have to run + -- git-annex/standalone/android/install-haskell-packages + -- which is not fully automated.) + -- armel builder has a companion container using amd64 that -- runs the build first to get TH splices. They need -- to have the same versions of all haskell libraries installed.