Add Makefile

This commit is contained in:
Anton Malinskiy
2018-02-12 16:35:59 +07:00
parent 6c4d823b68
commit df1c9ad627
6 changed files with 76 additions and 30 deletions

38
Makefile Normal file
View 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

View File

@@ -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

View File

@@ -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
View 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)

View File

@@ -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

View File

@@ -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