Add Makefile
This commit is contained in:
38
Makefile
Normal file
38
Makefile
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
SHELL := /usr/bin/env bash
|
||||||
|
VERSIONS = android-16 android-17 android-18 android-19 android-21 android-22 android-23 android-24 android-25 android-26
|
||||||
|
|
||||||
|
generate:
|
||||||
|
for version in $(VERSIONS); do \
|
||||||
|
mkdir -p ./build/$$version ; \
|
||||||
|
sed "s/{{ platform }}/$$version/" templates/Dockerfile > build/$$version/Dockerfile ; \
|
||||||
|
sed "s/{{ platform }}/$$version/" templates/config.ini > build/$$version/config.ini ; \
|
||||||
|
sed "s/{{ platform }}/$$version/" templates/start.sh > build/$$version/start.sh ; \
|
||||||
|
sed "s/{{ platform }}/$$version/" templates/Makefile > build/$$version/Makefile ; \
|
||||||
|
cp base/* ./build/$$version ; \
|
||||||
|
done
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf ./build
|
||||||
|
|
||||||
|
build: generate
|
||||||
|
for version in $(VERSIONS); do \
|
||||||
|
$(MAKE) -C build/$$version build; \
|
||||||
|
done
|
||||||
|
|
||||||
|
lint: generate
|
||||||
|
for version in $(VERSIONS); do \
|
||||||
|
$(MAKE) -C build/$$version lint; \
|
||||||
|
done
|
||||||
|
|
||||||
|
tag: generate
|
||||||
|
for version in $(VERSIONS); do \
|
||||||
|
$(MAKE) -C build/$$version tag; \
|
||||||
|
done
|
||||||
|
|
||||||
|
login:
|
||||||
|
@docker login -u "$(DOCKER_USER)" -p "$(DOCKER_PASS)"
|
||||||
|
|
||||||
|
push: login
|
||||||
|
for version in $(VERSIONS); do \
|
||||||
|
$(MAKE) -C build/$$version push; \
|
||||||
|
done
|
||||||
21
generate.sh
21
generate.sh
@@ -1,21 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
function createDockerfile() {
|
|
||||||
platform=$1
|
|
||||||
mkdir -p ./build/$platform
|
|
||||||
docker run -e PLATFORM="$platform" -v $(pwd):/src hairyhenderson/gomplate --input-dir=/src/templates --output-dir=/src/build/$platform
|
|
||||||
cp base/* ./build/$platform
|
|
||||||
}
|
|
||||||
|
|
||||||
rm -rf ./build
|
|
||||||
|
|
||||||
createDockerfile android-16
|
|
||||||
createDockerfile android-17
|
|
||||||
createDockerfile android-18
|
|
||||||
createDockerfile android-19
|
|
||||||
createDockerfile android-21
|
|
||||||
createDockerfile android-22
|
|
||||||
createDockerfile android-23
|
|
||||||
createDockerfile android-24
|
|
||||||
createDockerfile android-25
|
|
||||||
createDockerfile android-26
|
|
||||||
@@ -32,17 +32,17 @@ RUN dpkg --add-architecture i386 && \
|
|||||||
|
|
||||||
# Customized steps per specific platform
|
# Customized steps per specific platform
|
||||||
yes | sdkmanager --no_https --licenses && \
|
yes | sdkmanager --no_https --licenses && \
|
||||||
sdkmanager --no_https emulator tools platform-tools "platforms;{{ .Env.PLATFORM }}" "system-images;{{ .Env.PLATFORM }};google_apis;x86" --verbose && \
|
sdkmanager --no_https emulator tools platform-tools "platforms;{{ platform }}" "system-images;{{ platform }};google_apis;x86" --verbose && \
|
||||||
echo no | avdmanager create avd -n "x86" --package "system-images;{{ .Env.PLATFORM }};google_apis;x86" --tag google_apis && \
|
echo no | avdmanager create avd -n "x86" --package "system-images;{{ platform }};google_apis;x86" --tag google_apis && \
|
||||||
# Unfilter devices (now local because CI downloads from github are unstable)
|
# Unfilter devices (now local because CI downloads from github are unstable)
|
||||||
# curl -o /root/.android/adb_usb.ini https://raw.githubusercontent.com/apkudo/adbusbini/master/adb_usb.ini && \
|
# curl -o /root/.android/adb_usb.ini https://raw.githubusercontent.com/apkudo/adbusbini/master/adb_usb.ini && \
|
||||||
|
|
||||||
# Optimize size of the image
|
# Optimize size of the image
|
||||||
rm /root/.android/avd/x86.avd/userdata.img && \
|
rm /root/.android/avd/x86.avd/userdata.img && \
|
||||||
tar -czvf /opt/android-sdk-linux/system-images/{{ .Env.PLATFORM }}/google_apis/x86/userdata.img.tar.gz /opt/android-sdk-linux/system-images/{{ .Env.PLATFORM }}/google_apis/x86/userdata.img && \
|
tar -czvf /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.img.tar.gz /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.img && \
|
||||||
rm /opt/android-sdk-linux/system-images/{{ .Env.PLATFORM }}/google_apis/x86/userdata.img && \
|
rm /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.img && \
|
||||||
tar -czvf /opt/android-sdk-linux/system-images/{{ .Env.PLATFORM }}/google_apis/x86/system.img.tar.gz /opt/android-sdk-linux/system-images/{{ .Env.PLATFORM }}/google_apis/x86/system.img && \
|
tar -czvf /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.img.tar.gz /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.img && \
|
||||||
rm /opt/android-sdk-linux/system-images/{{ .Env.PLATFORM }}/google_apis/x86/system.img && \
|
rm /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.img && \
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get purge -yq unzip openjdk-8-jdk && \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -yq unzip openjdk-8-jdk && \
|
||||||
|
|
||||||
apt-get -yq autoremove && \
|
apt-get -yq autoremove && \
|
||||||
|
|||||||
29
templates/Makefile
Normal file
29
templates/Makefile
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
OWNER=agoda
|
||||||
|
IMAGE_NAME=docker-emulator-{{ platform }}
|
||||||
|
VCS_REF=`git rev-parse --short HEAD`
|
||||||
|
IMAGE_VERSION=1.0.$(TRAVIS_BUILD_NUMBER)
|
||||||
|
QNAME=$(OWNER)/$(IMAGE_NAME)
|
||||||
|
|
||||||
|
GIT_TAG=$(QNAME):$(VCS_REF)
|
||||||
|
BUILD_TAG=$(QNAME):$(IMAGE_VERSION)
|
||||||
|
LATEST_TAG=$(QNAME):latest
|
||||||
|
|
||||||
|
ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||||
|
|
||||||
|
build:
|
||||||
|
docker build \
|
||||||
|
--build-arg VCS_REF=$(VCS_REF) \
|
||||||
|
--build-arg IMAGE_VERSION=$(IMAGE_VERSION) \
|
||||||
|
-t $(GIT_TAG) $(ROOT_DIR)
|
||||||
|
|
||||||
|
lint:
|
||||||
|
docker run -it --rm -v "$(ROOT_DIR)/Dockerfile:/Dockerfile:ro" redcoolbeans/dockerlint
|
||||||
|
|
||||||
|
tag:
|
||||||
|
docker tag $(GIT_TAG) $(BUILD_TAG)
|
||||||
|
docker tag $(GIT_TAG) $(LATEST_TAG)
|
||||||
|
|
||||||
|
push:
|
||||||
|
docker push $(GIT_TAG)
|
||||||
|
docker push $(BUILD_TAG)
|
||||||
|
docker push $(LATEST_TAG)
|
||||||
@@ -26,7 +26,7 @@ hw.ramSize=1536
|
|||||||
hw.sensors.orientation=yes
|
hw.sensors.orientation=yes
|
||||||
hw.sensors.proximity=yes
|
hw.sensors.proximity=yes
|
||||||
hw.trackBall=no
|
hw.trackBall=no
|
||||||
image.sysdir.1=system-images/{{ .Env.PLATFORM }}/google_apis/x86/
|
image.sysdir.1=system-images/{{ platform }}/google_apis/x86/
|
||||||
runtime.network.latency=none
|
runtime.network.latency=none
|
||||||
runtime.network.speed=full
|
runtime.network.speed=full
|
||||||
showDeviceFrame=no
|
showDeviceFrame=no
|
||||||
|
|||||||
@@ -36,8 +36,8 @@ x11vnc -display :1 -nopw -forever &
|
|||||||
# qemu references bios by relative path
|
# qemu references bios by relative path
|
||||||
cd /opt/android-sdk-linux/emulator
|
cd /opt/android-sdk-linux/emulator
|
||||||
|
|
||||||
tar -xvf /opt/android-sdk-linux/system-images/{{ .Env.PLATFORM }}/google_apis/x86/userdata.img.tar.gz --directory /
|
tar -xvf /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.img.tar.gz --directory /
|
||||||
tar -xvf /opt/android-sdk-linux/system-images/{{ .Env.PLATFORM }}/google_apis/x86/system.img.tar.gz --directory /
|
tar -xvf /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.img.tar.gz --directory /
|
||||||
|
|
||||||
CONFIG="/root/.android/avd/x86.avd/config.ini"
|
CONFIG="/root/.android/avd/x86.avd/config.ini"
|
||||||
CONFIGTMP=${CONFIG}.tmp
|
CONFIGTMP=${CONFIG}.tmp
|
||||||
|
|||||||
Reference in New Issue
Block a user