• Stars
    star
    17
  • Rank 1,253,443 (Top 25 %)
  • Language
    Dockerfile
  • License
    MIT License
  • Created almost 8 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Docker microservice for LineageOS Continuous Integration and Continous Deployment

docker-lineage-cicd

Docker microservice for LineageOS Continuous Integration and Continous Deployment

Why

Because I always believe that even advanced technologies should be available to everyone. This is a tentative to offer everyone the possibility to build its own images of LineageOS, when it wants, how it wants. You don't have to wait anymore for build bots. No more scene drama. Just build and enjoy your favourite Android ROM.

Why Docker?

Because I'm a big fan of isolating everything if possible. I don't want to reinstall my OS or triage with dirty packages, just because today I need somethng, and tomorrow I'll need something else.

Requirements

  • At least Dual Core CPU ( Higher is better )
  • At least 6GB RAM ( Higher is better )
  • At least 200GB HDD Space ( Higher is better )

Android propretary binaries

By default when you build Android from scratch you need to pull the Binaries of your interested device via ADB. Although via Docker this is not possible to do so ( would imply having all the devices connected to that machine and ideally know how to switch from one to the other before pulling ).

In order to enable the CICD pipeline to work, I highly suggest to make use of this manifest (https://github.com/TheMuppets/manifests) and save it inside your mapped /srv/local_manifests folder, by doing for example:

$ curl -o https://raw.githubusercontent.com/TheMuppets/manifests/cm-14.1/muppets.xml /srv/local_manifests/muppets.xml

How it works

This docker will autobuild any device list given for a specified branch every midnight at 02:00 UTC. In the end, any built ZIP will be moved to the relative volume mapped directory to /srv/zips.

IMPORTANT: Remember to use VOLUME mapping. By default Docker creates containers with max 10GB of Space. If you will not map volumes, the container will just break during Source syncronization!

Configuration

You can configure the Docker by passing custom environment variables to it. See the Dockerfile for more details.

How to use

Simple mode

build cm14.1 LineageOS for hammerhead with default settings

docker run \
    --restart=always \
    -d \
    -e "USER_NAME=John Doe" \
    -e "[email protected]" \
    -e "DEVICE_LIST=hammerhead" \
    -v "/home/user/ccache:/srv/ccache" \
    -v "/home/user/source:/srv/src" \
    -v "/home/user/zips:/srv/zips" \
    julianxhokaxhiu/docker-lineage-cicd

Advanced mode

build cm-13.0 LineageOS for hammerhead and bullhead

docker run \
    --restart=always \
    -d \
    -e "USER_NAME=John Doe" \
    -e "[email protected]" \
    -e "BRANCH_NAME=cm-13.0" \
    -e "DEVICE_LIST=hammerhead,bullhead" \
    -v "/home/user/ccache:/srv/ccache" \
    -v "/home/user/source:/srv/src" \
    -v "/home/user/zips:/srv/zips" \
    julianxhokaxhiu/docker-lineage-cicd

Expert mode

build cm-14.1 LineageOS for a device that doesn't exist inside the main project, but comes from a special manifest ( has to be created inside /home/user/local_manifests/ ). Finally provide a custom OTA URL for this ROM so users can update using built-in OTA Updater.

docker run \
    --restart=always \
    -d \
    -e "USER_NAME=John Doe" \
    -e "[email protected]" \
    -e "BRANCH_NAME=cm-14.1" \
    -e "DEVICE_LIST=n80xx" \
    -e "OTA_URL=http://cool.domain/api" \
    -v "/home/user/ccache:/srv/ccache" \
    -v "/home/user/source:/srv/src" \
    -v "/home/user/zips:/srv/zips" \
    -v "/home/user/local_manifests:/srv/local_manifests" \
    julianxhokaxhiu/docker-lineage-cicd

NOTE: /home/user/local_manifests/ may contain multiple XMLs, since all the files will be then copied inside .repo/local_manifests/

More Repositories

1

FFNx

Next generation modding platform for Final Fantasy VII and Final Fantasy VIII ( with native Steam 2013 release support! )
C++
340
star
2

LineageOTA

A simple OTA REST Server for LineageOS OTA Updater System Application
PHP
215
star
3

iPoPS

Convert your PSX Discs and ISOs into the PBP format, and play them on your PSP
C
60
star
4

gitbook-plugin-summary

Gitbook plugin to auto-generate SUMMARY.md
JavaScript
52
star
5

docker-powerdns

PowerDNS + Recursor + Admin GUI + Adblock in one single Docker
Shell
52
star
6

vps-powered-by-docker

Arch Linux setup script to obtain a full VPS with Automatic Reverse Proxy (and more) without pain
Shell
27
star
7

docker-woocommerce

PHP Docker for Woocommerce on Steroids
Dockerfile
22
star
8

PostEvent

A Cross-Domain Event Handler javascript library. Pure Vanilla JS, no dependencies.
HTML
15
star
9

sublime-projecttreetemplater

A simple templater for your project: manage the tree with a simple script!
Python
15
star
10

LineageOTAUnitTest

A LineageOS OTA Unit Test made for NodeJS
JavaScript
10
star
11

jvectormap-italy-provinces

A plugin for jVectorMap which includes an Italy Map with Provinces Areas
10
star
12

TwigPress

A boilerplate Twig Engine Theme for Wordpress
PHP
9
star
13

chrome-link-revealer

Simply reveal links when you hover your mouse over anchors
JavaScript
9
star
14

chrome-deezer-mediakeys-reloaded

Add multimedia keys support to Deezer
JavaScript
9
star
15

spotify-playlist-extractor

Bring back the freedom of choice to users. Let them export their playlist from Spotify, whenever they want :)
JavaScript
9
star
16

SteamworksSDKCI

CI builds of Steamworks SDK for CMake build systems
C++
9
star
17

docker-awesome-wordpress

A Docker that combines all the most awesome needed things for a powerful Wordpress installation
Dockerfile
8
star
18

gulp-usemin-reloaded

A better usemin
JavaScript
6
star
19

chrome-spotify-mediakeys-reloaded

Add multimedia keys support to Spotify
JavaScript
6
star
20

Palmer

FF7 Field Background Editor
C++
5
star
21

mockups-creator

A NodeJS App that creates static HTML mockups using Grunt
JavaScript
5
star
22

jquery-itunestoresearch

A simple wrap to official iTunes Store Search API with jQuery
JavaScript
4
star
23

chrome-grooveshark-mediakeys-reloaded

Add multimedia keys support to Grooveshark
JavaScript
4
star
24

Moomba

Final Fantasy VIII CAM editor
C#
4
star
25

docker-gplayweb

GPlayWeb + FDroid Server + Caddy Server on one single Docker
Shell
4
star
26

typdom3

DOMPDF wrapper for TYPO3
PHP
4
star
27

tomahawk-daapjs

A DAAP resolver for Tomahawk made in Javascript
JavaScript
3
star
28

twypo

Twig for TYPO3
PHP
3
star
29

CaitSith

Final Fantasy VII CAM editor
C#
3
star
30

docker-pagekit

PHP Docker for Pagekit
2
star
31

JPM

A simple Json Package Manager
C#
2
star
32

jquery-youtubelivefeed

A simple jQuery plugin that will let you to embed live feeds or latest one made
JavaScript
2
star
33

ota.julianxhokaxhiu.com

Fully Automated Serverless OTA Service for LineageOS, using Github, Basketbuild, Cloudflare and Travis
JavaScript
2
star
34

PuPuSharp

FF8 Field Importer/Exporter - C# version of the original PuPu Project
C#
2
star
35

amazon-bot

JavaScript
2
star
36

FF78Launcher

An alternative launcher for FF7/FF8 Steam editions
CMake
2
star
37

bgfxCI

CI builds of bgfx for x86 platform
PowerShell
2
star
38

chrome-soundcloud-mediakeys-reloaded

Enable the use of MediaKeys for Soundcloud
JavaScript
2
star
39

polysticky.js

A position sticky polyfill that doesn't suck.
JavaScript
2
star
40

dotfiles

Collection of dotfiles improved overtime, based on Arch Linux
Shell
2
star
41

gulp-closurecompiler

The ClosureCompiler.js Gulp Task
JavaScript
2
star
42

FF7SND

Final Fantasy VII Audio Extraction app ( originally made by Qhimm.com )
C#
2
star
43

jquery-tagbox

A simple Facebook (or Google+) TagBox like using jQueryUI
JavaScript
1
star
44

MMNx

Next generation Mod Manager
CMake
1
star
45

ff8_mch

Final Fantasy VIII MCH Import/Export plugin for Blender
Python
1
star
46

docker-twrp-cicd

Docker microservice for TWRP Continuous Integration and Continous Deployment
Shell
1
star
47

DeliriNotturni-Live-Page

Live page of DeliriNotturni.org
JavaScript
1
star
48

rpi-powered-by-docker

Arch Linux ARM setup script to obtain a full RPI with Automatic Reverse Proxy (and more) without pain
Shell
1
star
49

ffmpegCI

CI builds of FFMpeg for x86 platform
PowerShell
1
star
50

chrome-youtube-mediakeys-reloaded

Enable the use of MediaKeys for Youtube
JavaScript
1
star
51

blog.julianxhokaxhiu.com

Julian Xhokaxhiu's Blog
HTML
1
star
52

vpngate-ovpn-exporter

Export all VPNGate OpenVPN configurations to files inside country-code relative folders
Python
1
star
53

AUR

My Arch Linux AUR Packages
Shell
1
star
54

LLGLCI

CI builds of LLGL for x86 platform
CMake
1
star
55

docker-iperf3

iPerf3 Server Container
Dockerfile
1
star
56

docker-nginx-reloaded

Reverse Proxy Docker container with Nginx, acme.sh, DNS and Autodiscovery ( alternative to jwilder/nginx-proxy )
Twig
1
star