From cf703caad862c17f5b66ccec85db1a55f7fb942e Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 15 Feb 2018 23:29:17 +0300 Subject: [PATCH 01/36] travis --- .semver | 1 + .travis.yml | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 .semver create mode 100644 .travis.yml diff --git a/.semver b/.semver new file mode 100644 index 0000000..afaf360 --- /dev/null +++ b/.semver @@ -0,0 +1 @@ +1.0.0 \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..89b197c --- /dev/null +++ b/.travis.yml @@ -0,0 +1,12 @@ +sudo: true +dist: trusty + +services: + - docker + +jobs: + include: + - stage: build rpi image + script: + - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" + - docker build --file Dockerfile-rpi -t $DOCKER_USERNAME/aqara-mqtt:$(`cat .semver`)-rpi . \ No newline at end of file From 9cabb1adb2af19549a183602e56fd4ca281b82de Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 15 Feb 2018 23:38:04 +0300 Subject: [PATCH 02/36] travis --- .semver | 1 - .travis.yml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 .semver diff --git a/.semver b/.semver deleted file mode 100644 index afaf360..0000000 --- a/.semver +++ /dev/null @@ -1 +0,0 @@ -1.0.0 \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 89b197c..b5e6d06 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,4 +9,4 @@ jobs: - stage: build rpi image script: - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - - docker build --file Dockerfile-rpi -t $DOCKER_USERNAME/aqara-mqtt:$(`cat .semver`)-rpi . \ No newline at end of file + - docker build --file Dockerfile-rpi -t $DOCKER_USERNAME/aqara-mqtt:$TRAVIS_TAG-rpi . \ No newline at end of file From a32cc13bc32c1a93539bf3c0650eddb92f29e888 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 15 Feb 2018 23:43:06 +0300 Subject: [PATCH 03/36] travis --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b5e6d06..4031497 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,4 +9,8 @@ jobs: - stage: build rpi image script: - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - - docker build --file Dockerfile-rpi -t $DOCKER_USERNAME/aqara-mqtt:$TRAVIS_TAG-rpi . \ No newline at end of file + - docker build --file Dockerfile-rpi -t aqara-mqtt-rpi . + - docker images + - echo $TRAVIS_TAG + - docker tag aqara-mqtt-rpi $DOCKER_USERNAME/aqara-mqtt:$TRAVIS_TAG-rpi + - docker images From 5182c22f1a1cc7f0776a7da6f1e48bc7be583c8b Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 15 Feb 2018 23:54:00 +0300 Subject: [PATCH 04/36] travis --- .semver | 1 + .travis.yml | 3 +-- Dockerfile-rpi | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 .semver diff --git a/.semver b/.semver new file mode 100644 index 0000000..3eefcb9 --- /dev/null +++ b/.semver @@ -0,0 +1 @@ +1.0.0 diff --git a/.travis.yml b/.travis.yml index 4031497..00b0f6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,5 @@ jobs: - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - docker build --file Dockerfile-rpi -t aqara-mqtt-rpi . - docker images - - echo $TRAVIS_TAG - - docker tag aqara-mqtt-rpi $DOCKER_USERNAME/aqara-mqtt:$TRAVIS_TAG-rpi + - docker tag aqara-mqtt-rpi $DOCKER_USERNAME/aqara-mqtt:`cat .semver`-rpi - docker images diff --git a/Dockerfile-rpi b/Dockerfile-rpi index 102cf06..a94cf15 100644 --- a/Dockerfile-rpi +++ b/Dockerfile-rpi @@ -1,9 +1,12 @@ -FROM alpine-python:latest +FROM arm32v7/python:slim ENV LIBRARY_PATH=/lib:/usr/lib ADD src/requirements.txt / -RUN pip install --upgrade pip && pip install -r /requirements.txt +RUN apt-get update && apt-get install -y build-essential autoconf \ + && pip install --upgrade pip && pip install -r /requirements.txt \ + && apt-get remove -y build-essential autoconf \ + && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY src /app From c25dadfeb2c03eef554fe6d2186b74921cce6c32 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 00:08:44 +0300 Subject: [PATCH 05/36] travis --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 00b0f6a..1833789 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,9 @@ jobs: include: - stage: build rpi image script: + # prepare qemu + - docker run --rm --privileged multiarch/qemu-user-static:register --reset + # build - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - docker build --file Dockerfile-rpi -t aqara-mqtt-rpi . - docker images From f4d8b0e52950dc595800a294da86e0574ecd5e3c Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 00:19:10 +0300 Subject: [PATCH 06/36] travis --- .travis.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1833789..e57ea14 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,9 +10,19 @@ jobs: script: # prepare qemu - docker run --rm --privileged multiarch/qemu-user-static:register --reset + # build - - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - - docker build --file Dockerfile-rpi -t aqara-mqtt-rpi . - - docker images - - docker tag aqara-mqtt-rpi $DOCKER_USERNAME/aqara-mqtt:`cat .semver`-rpi + - docker build --file Dockerfile-rpi -t $DOCKER_USERNAME/aqara-mqtt . - docker images + + # push image + - > + if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then + VERSION=$(cat .semver) + ARCH=rpi + docker login -u="$DOCKER_USER" -p="$DOCKER_PASSWORD" + docker images + docker tag $DOCKER_USERNAME/aqara-mqtt $DOCKER_USERNAME/aqara-mqttl:$VERSION-$ARCH + docker images + # docker push $DOCKER_USERNAME/aqara-mqtt:$VERSION-$ARCH + fi \ No newline at end of file From e83ce64a47c0d21b155ce8d96fcb8f7fc6874ebf Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 00:22:57 +0300 Subject: [PATCH 07/36] travis --- .travis.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e57ea14..a34ac1d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,12 +4,16 @@ dist: trusty services: - docker +before_script: + - sudo apt-get --yes --no-install-recommends install binfmt-support qemu-user-static + - echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-static:' | sudo tee -a /proc/sys/fs/binfmt_misc/register + jobs: include: - stage: build rpi image script: - # prepare qemu - - docker run --rm --privileged multiarch/qemu-user-static:register --reset + # # prepare qemu + # - docker run --rm --privileged multiarch/qemu-user-static:register --reset # build - docker build --file Dockerfile-rpi -t $DOCKER_USERNAME/aqara-mqtt . From 3b4e735cf26b9914b8f34146dc73c34609addabb Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 00:28:28 +0300 Subject: [PATCH 08/36] travis --- Dockerfile-rpi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile-rpi b/Dockerfile-rpi index a94cf15..231b947 100644 --- a/Dockerfile-rpi +++ b/Dockerfile-rpi @@ -2,6 +2,8 @@ FROM arm32v7/python:slim ENV LIBRARY_PATH=/lib:/usr/lib +COPY qemu-arm-static /usr/bin/qemu-arm-static + ADD src/requirements.txt / RUN apt-get update && apt-get install -y build-essential autoconf \ && pip install --upgrade pip && pip install -r /requirements.txt \ From 5fd253a7f5e5563b39a71e69399ea59de5afea33 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 00:32:49 +0300 Subject: [PATCH 09/36] travis --- Dockerfile-rpi | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile-rpi b/Dockerfile-rpi index 231b947..dcadc9a 100644 --- a/Dockerfile-rpi +++ b/Dockerfile-rpi @@ -4,11 +4,11 @@ ENV LIBRARY_PATH=/lib:/usr/lib COPY qemu-arm-static /usr/bin/qemu-arm-static -ADD src/requirements.txt / -RUN apt-get update && apt-get install -y build-essential autoconf \ - && pip install --upgrade pip && pip install -r /requirements.txt \ - && apt-get remove -y build-essential autoconf \ - && rm -rf /var/lib/apt/lists/* +#ADD src/requirements.txt / +#RUN apt-get update && apt-get install -y build-essential autoconf \ +# && pip install --upgrade pip && pip install -r /requirements.txt \ +# && apt-get remove -y build-essential autoconf \ +# && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY src /app From 080de01b37ca022a62df2efc64a8c6edd8da10e8 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 00:37:24 +0300 Subject: [PATCH 10/36] travis --- .travis.yml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index a34ac1d..79ef1d1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,22 +1,20 @@ sudo: true -dist: trusty - services: - docker -before_script: - - sudo apt-get --yes --no-install-recommends install binfmt-support qemu-user-static - - echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-static:' | sudo tee -a /proc/sys/fs/binfmt_misc/register +env: + global: + - IMAGE_NAME=$DOCKER_USERNAME/aqara-mqtt jobs: include: - stage: build rpi image script: - # # prepare qemu - # - docker run --rm --privileged multiarch/qemu-user-static:register --reset + # prepare qemu + - docker run --rm --privileged multiarch/qemu-user-static:register --reset # build - - docker build --file Dockerfile-rpi -t $DOCKER_USERNAME/aqara-mqtt . + - docker build -t $IMAGE_NAME -f Dockerfile-rpi . - docker images # push image @@ -24,9 +22,10 @@ jobs: if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then VERSION=$(cat .semver) ARCH=rpi + docker login -u="$DOCKER_USER" -p="$DOCKER_PASSWORD" docker images - docker tag $DOCKER_USERNAME/aqara-mqtt $DOCKER_USERNAME/aqara-mqttl:$VERSION-$ARCH + docker tag $IMAGE_NAME $IMAGE_NAME:$VERSION-$ARCH docker images - # docker push $DOCKER_USERNAME/aqara-mqtt:$VERSION-$ARCH + # docker push $IMAGE_NAME:$VERSION-$ARCH fi \ No newline at end of file From 10900725a1bb4b99f96f1ca46b25a75c997db981 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 00:37:39 +0300 Subject: [PATCH 11/36] travis --- Dockerfile-rpi | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile-rpi b/Dockerfile-rpi index dcadc9a..93c0c7f 100644 --- a/Dockerfile-rpi +++ b/Dockerfile-rpi @@ -2,8 +2,6 @@ FROM arm32v7/python:slim ENV LIBRARY_PATH=/lib:/usr/lib -COPY qemu-arm-static /usr/bin/qemu-arm-static - #ADD src/requirements.txt / #RUN apt-get update && apt-get install -y build-essential autoconf \ # && pip install --upgrade pip && pip install -r /requirements.txt \ From f647e97b7f0cfa95658514f375d4396652eed5f0 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 00:42:39 +0300 Subject: [PATCH 12/36] travis --- .travis.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 79ef1d1..8735eda 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,23 +9,21 @@ env: jobs: include: - stage: build rpi image + before_script: + - VERSION=$(cat .semver) + - ARCH=rpi + script: # prepare qemu - docker run --rm --privileged multiarch/qemu-user-static:register --reset # build - - docker build -t $IMAGE_NAME -f Dockerfile-rpi . - - docker images + - docker build -t $IMAGE_NAME -f Dockerfile-$ARCH . # push image - > if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then - VERSION=$(cat .semver) - ARCH=rpi - docker login -u="$DOCKER_USER" -p="$DOCKER_PASSWORD" - docker images docker tag $IMAGE_NAME $IMAGE_NAME:$VERSION-$ARCH - docker images - # docker push $IMAGE_NAME:$VERSION-$ARCH + docker push $IMAGE_NAME:$VERSION-$ARCH fi \ No newline at end of file From 32c8aefb769c716fa2ef1e054784872c036c2c60 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 00:50:58 +0300 Subject: [PATCH 13/36] travis --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8735eda..ae34551 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,10 +8,10 @@ env: jobs: include: - - stage: build rpi image + - stage: build armhf image before_script: - VERSION=$(cat .semver) - - ARCH=rpi + - ARCH=armhf script: # prepare qemu @@ -23,7 +23,7 @@ jobs: # push image - > if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then - docker login -u="$DOCKER_USER" -p="$DOCKER_PASSWORD" + docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" docker tag $IMAGE_NAME $IMAGE_NAME:$VERSION-$ARCH docker push $IMAGE_NAME:$VERSION-$ARCH fi \ No newline at end of file From 6bd16ded6012fab27ec2d0b2e270a1e8f5acf053 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 00:53:39 +0300 Subject: [PATCH 14/36] travis --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index ae34551..3996608 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,6 +23,8 @@ jobs: # push image - > if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then + docker images + echo $IMAGE_NAME docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" docker tag $IMAGE_NAME $IMAGE_NAME:$VERSION-$ARCH docker push $IMAGE_NAME:$VERSION-$ARCH From 7ee0cfadc754bc56330cc23a07ad84a3d062ea52 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 00:58:36 +0300 Subject: [PATCH 15/36] travis --- .travis.yml | 7 ++++--- Dockerfile-rpi | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3996608..b9e1f1f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,8 @@ services: env: global: - - IMAGE_NAME=$DOCKER_USERNAME/aqara-mqtt + - PROJECT=aqara-mqtt + - IMAGE_NAME=$DOCKER_USERNAME/$PROJECT jobs: include: @@ -18,7 +19,7 @@ jobs: - docker run --rm --privileged multiarch/qemu-user-static:register --reset # build - - docker build -t $IMAGE_NAME -f Dockerfile-$ARCH . + - docker build -t $PROJECT -f Dockerfile-$ARCH . # push image - > @@ -26,6 +27,6 @@ jobs: docker images echo $IMAGE_NAME docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - docker tag $IMAGE_NAME $IMAGE_NAME:$VERSION-$ARCH + docker tag $PROJECT $IMAGE_NAME:$VERSION-$ARCH docker push $IMAGE_NAME:$VERSION-$ARCH fi \ No newline at end of file diff --git a/Dockerfile-rpi b/Dockerfile-rpi index 93c0c7f..0d3f546 100644 --- a/Dockerfile-rpi +++ b/Dockerfile-rpi @@ -6,6 +6,7 @@ ENV LIBRARY_PATH=/lib:/usr/lib #RUN apt-get update && apt-get install -y build-essential autoconf \ # && pip install --upgrade pip && pip install -r /requirements.txt \ # && apt-get remove -y build-essential autoconf \ +# && apt-get autoremove -y \ # && rm -rf /var/lib/apt/lists/* WORKDIR /app From b0082fe61bb0ea25d4febc23270616564dc16e13 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 01:02:36 +0300 Subject: [PATCH 16/36] travis --- Dockerfile-rpi => Dockerfile-armhf | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Dockerfile-rpi => Dockerfile-armhf (100%) diff --git a/Dockerfile-rpi b/Dockerfile-armhf similarity index 100% rename from Dockerfile-rpi rename to Dockerfile-armhf From 1e6c131f810732a09a194d0b102a14a8e1c79c1b Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 01:07:46 +0300 Subject: [PATCH 17/36] travis --- Dockerfile-armhf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile-armhf b/Dockerfile-armhf index 0d3f546..ea40b5e 100644 --- a/Dockerfile-armhf +++ b/Dockerfile-armhf @@ -3,11 +3,11 @@ FROM arm32v7/python:slim ENV LIBRARY_PATH=/lib:/usr/lib #ADD src/requirements.txt / -#RUN apt-get update && apt-get install -y build-essential autoconf \ +RUN apt-get update && apt-get install -y build-essential autoconf \ # && pip install --upgrade pip && pip install -r /requirements.txt \ # && apt-get remove -y build-essential autoconf \ -# && apt-get autoremove -y \ -# && rm -rf /var/lib/apt/lists/* + && apt-get autoremove -y \ + && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY src /app From a845c49bcd1d763ebb681f9ff9b32fb78ff53447 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 08:50:04 +0300 Subject: [PATCH 18/36] travis --- Dockerfile-armhf | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Dockerfile-armhf b/Dockerfile-armhf index ea40b5e..c66a89f 100644 --- a/Dockerfile-armhf +++ b/Dockerfile-armhf @@ -2,14 +2,16 @@ FROM arm32v7/python:slim ENV LIBRARY_PATH=/lib:/usr/lib -#ADD src/requirements.txt / -RUN apt-get update && apt-get install -y build-essential autoconf \ +ADD src/requirements.txt / +RUN apt-get update + +#RUN apt-get update && apt-get install -y build-essential autoconf \ # && pip install --upgrade pip && pip install -r /requirements.txt \ # && apt-get remove -y build-essential autoconf \ - && apt-get autoremove -y \ - && rm -rf /var/lib/apt/lists/* +# && apt-get autoremove -y \ +# && rm -rf /var/lib/apt/lists/* -WORKDIR /app -COPY src /app +#WORKDIR /app +#COPY src /app -CMD ["python3", "-u", "/app/main.py"] +#CMD ["python3", "-u", "/app/main.py"] From e129152f7915f20e5113dc50c4ac1020d4e7f17c Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 08:55:53 +0300 Subject: [PATCH 19/36] travis --- Dockerfile-armhf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile-armhf b/Dockerfile-armhf index c66a89f..c32ad32 100644 --- a/Dockerfile-armhf +++ b/Dockerfile-armhf @@ -3,7 +3,7 @@ FROM arm32v7/python:slim ENV LIBRARY_PATH=/lib:/usr/lib ADD src/requirements.txt / -RUN apt-get update +RUN /usr/bin/apt-get update #RUN apt-get update && apt-get install -y build-essential autoconf \ # && pip install --upgrade pip && pip install -r /requirements.txt \ From 3b3effc67dd182a9b1134911900ed1334a3b5b15 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 09:12:35 +0300 Subject: [PATCH 20/36] travis --- Dockerfile-armhf | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile-armhf b/Dockerfile-armhf index c32ad32..a33e9fa 100644 --- a/Dockerfile-armhf +++ b/Dockerfile-armhf @@ -3,6 +3,7 @@ FROM arm32v7/python:slim ENV LIBRARY_PATH=/lib:/usr/lib ADD src/requirements.txt / +RUN mkdir /tmp2 && cd /tmp2 && curl -L -o qemu-arm-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/v2.6.0/qemu-arm-static.tar.gz && tar xzf qemu-arm-static.tar.gz && cp /tmp2/qemu-arm-static /usr/bin/qemu-arm-static && rm -rf /tmp2 RUN /usr/bin/apt-get update #RUN apt-get update && apt-get install -y build-essential autoconf \ From 848a36f9cd9b94a8ea2d1e3fb7baff40decbf8c3 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 09:16:16 +0300 Subject: [PATCH 21/36] travis --- .travis.yml | 7 +++++++ Dockerfile-armhf | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b9e1f1f..99000a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,13 @@ jobs: script: # prepare qemu - docker run --rm --privileged multiarch/qemu-user-static:register --reset + # get qemu-arm-static binary + - mkdir tmp + - > + pushd tmp && + curl -L -o qemu-arm-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/v2.6.0/qemu-arm-static.tar.gz && + tar xzf qemu-arm-static.tar.gz && + popd # build - docker build -t $PROJECT -f Dockerfile-$ARCH . diff --git a/Dockerfile-armhf b/Dockerfile-armhf index a33e9fa..72cd93b 100644 --- a/Dockerfile-armhf +++ b/Dockerfile-armhf @@ -3,7 +3,7 @@ FROM arm32v7/python:slim ENV LIBRARY_PATH=/lib:/usr/lib ADD src/requirements.txt / -RUN mkdir /tmp2 && cd /tmp2 && curl -L -o qemu-arm-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/v2.6.0/qemu-arm-static.tar.gz && tar xzf qemu-arm-static.tar.gz && cp /tmp2/qemu-arm-static /usr/bin/qemu-arm-static && rm -rf /tmp2 +COPY tmp/qemu-arm-static /usr/bin/qemu-arm-static RUN /usr/bin/apt-get update #RUN apt-get update && apt-get install -y build-essential autoconf \ From 74f3d3bce6dd574ef7e11a7e3f55832ff3fa3d04 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 09:25:55 +0300 Subject: [PATCH 22/36] travis --- .travis.yml | 2 ++ Dockerfile-armhf | 19 ++++++++----------- docker-compose.yaml | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 99000a7..d27f71f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,6 +24,8 @@ jobs: curl -L -o qemu-arm-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/v2.6.0/qemu-arm-static.tar.gz && tar xzf qemu-arm-static.tar.gz && popd + #copy it to container + - sed -i -e '2iCOPY tmp/qemu-arm-static /usr/bin/qemu-arm-static\' Dockerfile-$ARCH # build - docker build -t $PROJECT -f Dockerfile-$ARCH . diff --git a/Dockerfile-armhf b/Dockerfile-armhf index 72cd93b..e232bc0 100644 --- a/Dockerfile-armhf +++ b/Dockerfile-armhf @@ -3,16 +3,13 @@ FROM arm32v7/python:slim ENV LIBRARY_PATH=/lib:/usr/lib ADD src/requirements.txt / -COPY tmp/qemu-arm-static /usr/bin/qemu-arm-static -RUN /usr/bin/apt-get update +RUN apt-get update && apt-get install -y build-essential autoconf \ + && pip install --upgrade pip && pip install -r /requirements.txt \ + && apt-get remove -y build-essential autoconf \ + && apt-get autoremove -y \ + && rm -rf /var/lib/apt/lists/* -#RUN apt-get update && apt-get install -y build-essential autoconf \ -# && pip install --upgrade pip && pip install -r /requirements.txt \ -# && apt-get remove -y build-essential autoconf \ -# && apt-get autoremove -y \ -# && rm -rf /var/lib/apt/lists/* +WORKDIR /app +COPY src /app -#WORKDIR /app -#COPY src /app - -#CMD ["python3", "-u", "/app/main.py"] +CMD ["python3", "-u", "/app/main.py"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 6c55f82..d3d9b21 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,6 +1,6 @@ aqara: build: . - dockerfile: Dockerfile-rpi + dockerfile: Dockerfile-armhf container_name: aqara volumes: - "./config:/app/config" From 85a53d031ef9cc4c2450f0b34827ba40b2f65911 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 09:40:11 +0300 Subject: [PATCH 23/36] travis --- .travis.yml | 6 ++++++ docker-compose.yaml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d27f71f..88627e6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,6 +36,12 @@ jobs: docker images echo $IMAGE_NAME docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" + + #version-arch docker tag $PROJECT $IMAGE_NAME:$VERSION-$ARCH docker push $IMAGE_NAME:$VERSION-$ARCH + + #latest by arch + docker tag $PROJECT $IMAGE_NAME:$ARCH + docker push $IMAGE_NAME:$ARCH fi \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index d3d9b21..4db5b45 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,5 +1,5 @@ aqara: - build: . + image: monster1025/aqara-mqtt:armhf dockerfile: Dockerfile-armhf container_name: aqara volumes: From 810fe2b4b1bd1420c6e2db3b1370dbc5edb569da Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 10:01:39 +0300 Subject: [PATCH 24/36] travis --- .travis.yml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 88627e6..59338ed 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,4 +44,29 @@ jobs: #latest by arch docker tag $PROJECT $IMAGE_NAME:$ARCH docker push $IMAGE_NAME:$ARCH - fi \ No newline at end of file + fi + + - stage: build i386 image + before_script: + - VERSION=$(cat .semver) + - ARCH=i386 + + script: + # build + - docker build -t $PROJECT -f Dockerfile-$ARCH . + + # push image + - > + if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then + docker images + echo $IMAGE_NAME + docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" + + #version-arch + docker tag $PROJECT $IMAGE_NAME:$VERSION-$ARCH + docker push $IMAGE_NAME:$VERSION-$ARCH + + #latest by arch + docker tag $PROJECT $IMAGE_NAME:$ARCH + docker push $IMAGE_NAME:$ARCH + fi From 147fe4dc78edd49bc1bdb07f0410ba374ff593cb Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 10:11:55 +0300 Subject: [PATCH 25/36] travis --- .travis.yml | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/.travis.yml b/.travis.yml index 59338ed..af2e4ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,31 @@ env: jobs: include: + - stage: build i386 image + before_script: + - VERSION=$(cat .semver) + - ARCH=i386 + + script: + # build + - docker build -t $PROJECT -f Dockerfile-$ARCH . + + # push image + - > + if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then + docker images + echo $IMAGE_NAME + docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" + + #version-arch + docker tag $PROJECT $IMAGE_NAME:$VERSION-$ARCH + docker push $IMAGE_NAME:$VERSION-$ARCH + + #latest by arch + docker tag $PROJECT $IMAGE_NAME:$ARCH + docker push $IMAGE_NAME:$ARCH + fi + - stage: build armhf image before_script: - VERSION=$(cat .semver) @@ -18,8 +43,8 @@ jobs: # prepare qemu - docker run --rm --privileged multiarch/qemu-user-static:register --reset # get qemu-arm-static binary - - mkdir tmp - > + mkdir tmp && pushd tmp && curl -L -o qemu-arm-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/v2.6.0/qemu-arm-static.tar.gz && tar xzf qemu-arm-static.tar.gz && @@ -45,28 +70,3 @@ jobs: docker tag $PROJECT $IMAGE_NAME:$ARCH docker push $IMAGE_NAME:$ARCH fi - - - stage: build i386 image - before_script: - - VERSION=$(cat .semver) - - ARCH=i386 - - script: - # build - - docker build -t $PROJECT -f Dockerfile-$ARCH . - - # push image - - > - if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then - docker images - echo $IMAGE_NAME - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - - #version-arch - docker tag $PROJECT $IMAGE_NAME:$VERSION-$ARCH - docker push $IMAGE_NAME:$VERSION-$ARCH - - #latest by arch - docker tag $PROJECT $IMAGE_NAME:$ARCH - docker push $IMAGE_NAME:$ARCH - fi From 67b465fac4f862a0e68a1f609351b30e4a77da3e Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 10:18:29 +0300 Subject: [PATCH 26/36] travis --- .travis.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.travis.yml b/.travis.yml index af2e4ad..e06cf4d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,31 @@ env: jobs: include: + - stage: build x64 image + before_script: + - VERSION=$(cat .semver) + - ARCH=x64 + + script: + # build + - docker build -t $PROJECT -f Dockerfile-$ARCH . + + # push image + - > + if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then + docker images + echo $IMAGE_NAME + docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" + + #version-arch + docker tag $PROJECT $IMAGE_NAME:$VERSION-$ARCH + docker push $IMAGE_NAME:$VERSION-$ARCH + + #latest by arch + docker tag $PROJECT $IMAGE_NAME:$ARCH + docker push $IMAGE_NAME:$ARCH + fi + - stage: build i386 image before_script: - VERSION=$(cat .semver) From b48c2abfd331408b944c10e97f2601749ee12328 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 10:39:05 +0300 Subject: [PATCH 27/36] travis --- .travis.yml | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index e06cf4d..2acaebc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,8 @@ jobs: - stage: build x64 image before_script: - VERSION=$(cat .semver) + - MAJOR=$(cut -d. -f1 .semver) + - MINOR=$(cut -d. -f2 .semver) - ARCH=x64 script: @@ -25,10 +27,18 @@ jobs: echo $IMAGE_NAME docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - #version-arch + #1.0.0-arch docker tag $PROJECT $IMAGE_NAME:$VERSION-$ARCH docker push $IMAGE_NAME:$VERSION-$ARCH + #1.0-arch + docker tag $PROJECT $IMAGE_NAME:$MAJOR.$MINOR-$ARCH + docker push $IMAGE_NAME:$MAJOR.$MINOR-$ARCH + + #1-arch + docker tag $PROJECT $IMAGE_NAME:$MAJOR-$ARCH + docker push $IMAGE_NAME:$MAJOR-$ARCH + #latest by arch docker tag $PROJECT $IMAGE_NAME:$ARCH docker push $IMAGE_NAME:$ARCH @@ -37,6 +47,8 @@ jobs: - stage: build i386 image before_script: - VERSION=$(cat .semver) + - MAJOR=$(cut -d. -f1 .semver) + - MINOR=$(cut -d. -f2 .semver) - ARCH=i386 script: @@ -50,10 +62,18 @@ jobs: echo $IMAGE_NAME docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - #version-arch + #1.0.0-arch docker tag $PROJECT $IMAGE_NAME:$VERSION-$ARCH docker push $IMAGE_NAME:$VERSION-$ARCH + #1.0-arch + docker tag $PROJECT $IMAGE_NAME:$MAJOR.$MINOR-$ARCH + docker push $IMAGE_NAME:$MAJOR.$MINOR-$ARCH + + #1-arch + docker tag $PROJECT $IMAGE_NAME:$MAJOR-$ARCH + docker push $IMAGE_NAME:$MAJOR-$ARCH + #latest by arch docker tag $PROJECT $IMAGE_NAME:$ARCH docker push $IMAGE_NAME:$ARCH @@ -62,6 +82,8 @@ jobs: - stage: build armhf image before_script: - VERSION=$(cat .semver) + - MAJOR=$(cut -d. -f1 .semver) + - MINOR=$(cut -d. -f2 .semver) - ARCH=armhf script: @@ -87,10 +109,18 @@ jobs: echo $IMAGE_NAME docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - #version-arch + #1.0.0-arch docker tag $PROJECT $IMAGE_NAME:$VERSION-$ARCH docker push $IMAGE_NAME:$VERSION-$ARCH + #1.0-arch + docker tag $PROJECT $IMAGE_NAME:$MAJOR.$MINOR-$ARCH + docker push $IMAGE_NAME:$MAJOR.$MINOR-$ARCH + + #1-arch + docker tag $PROJECT $IMAGE_NAME:$MAJOR-$ARCH + docker push $IMAGE_NAME:$MAJOR-$ARCH + #latest by arch docker tag $PROJECT $IMAGE_NAME:$ARCH docker push $IMAGE_NAME:$ARCH From a1fbbd0922ea8e12f3e8a94411cd63a0894cc885 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 10:40:11 +0300 Subject: [PATCH 28/36] travis --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 4db5b45..0f04aef 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,5 +1,5 @@ aqara: - image: monster1025/aqara-mqtt:armhf + image: monster1025/aqara-mqtt:1-armhf dockerfile: Dockerfile-armhf container_name: aqara volumes: From 076e70de6b4f6ea5f300a58fe9982d24f838e379 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 10:49:59 +0300 Subject: [PATCH 29/36] travis --- .travis.yml | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2acaebc..b2d7d34 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ sudo: true +language: python services: - docker @@ -6,14 +7,15 @@ env: global: - PROJECT=aqara-mqtt - IMAGE_NAME=$DOCKER_USERNAME/$PROJECT + - VERSION=$(cat .semver) + - MAJOR=$(cut -d. -f1 .semver) + - MINOR=$(cut -d. -f2 .semver) + - PATCH=$(cut -d. -f3 .semver) jobs: include: - stage: build x64 image before_script: - - VERSION=$(cat .semver) - - MAJOR=$(cut -d. -f1 .semver) - - MINOR=$(cut -d. -f2 .semver) - ARCH=x64 script: @@ -46,9 +48,6 @@ jobs: - stage: build i386 image before_script: - - VERSION=$(cat .semver) - - MAJOR=$(cut -d. -f1 .semver) - - MINOR=$(cut -d. -f2 .semver) - ARCH=i386 script: @@ -81,9 +80,6 @@ jobs: - stage: build armhf image before_script: - - VERSION=$(cat .semver) - - MAJOR=$(cut -d. -f1 .semver) - - MINOR=$(cut -d. -f2 .semver) - ARCH=armhf script: @@ -105,8 +101,6 @@ jobs: # push image - > if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then - docker images - echo $IMAGE_NAME docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" #1.0.0-arch From 8b4ea2a089a05a9d36c0c1857c13992dbde1c1e6 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 11:08:17 +0300 Subject: [PATCH 30/36] Added support for JSON report instead of properties. --- .travis.yml | 4 ---- config/config-sample.yaml | 2 ++ docker-compose.yaml | 1 - src/mqtt.py | 27 +++++++++++++++++++-------- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index b2d7d34..76c6891 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,8 +25,6 @@ jobs: # push image - > if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then - docker images - echo $IMAGE_NAME docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" #1.0.0-arch @@ -57,8 +55,6 @@ jobs: # push image - > if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then - docker images - echo $IMAGE_NAME docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" #1.0.0-arch diff --git a/config/config-sample.yaml b/config/config-sample.yaml index 5ee8909..5db843c 100644 --- a/config/config-sample.yaml +++ b/config/config-sample.yaml @@ -4,6 +4,8 @@ mqtt: username: username password: passw0rd prefix: home + #send report as json + json: False gateway: password: passw0rd diff --git a/docker-compose.yaml b/docker-compose.yaml index 0f04aef..be7edd1 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,6 +1,5 @@ aqara: image: monster1025/aqara-mqtt:1-armhf - dockerfile: Dockerfile-armhf container_name: aqara volumes: - "./config:/app/config" diff --git a/src/mqtt.py b/src/mqtt.py index 328db4b..5684de5 100644 --- a/src/mqtt.py +++ b/src/mqtt.py @@ -8,6 +8,7 @@ import json _LOGGER = logging.getLogger(__name__) class Mqtt: + event_based_sensors = ["switch", "cube"] username = "" password = "" server = "localhost" @@ -38,6 +39,7 @@ class Mqtt: self.server = mqttConfig.get("server", "localhost") self.port = mqttConfig.get("port", 1883) self.prefix = mqttConfig.get("prefix", "home") + self.json = mqttConfig.get("json", False) self._queue = Queue() self._threads = [] @@ -72,8 +74,6 @@ class Mqtt: model = sidprops.get("model",model) sid = sidprops.get("name",sid) - # _LOGGER.info("data is " + format(data)) - PATH_FMT = self.prefix + "/{model}/{sid}/{prop}" for key, value in data.items(): # fix for latest motion value if (model == "motion" and key == "no_motion"): @@ -82,18 +82,29 @@ class Mqtt: if (model == "magnet" and key == "no_close"): key="status" value="open" - # do not retain event-based sensors (like switches and cubes). - if (model in ["switch", "cube"]): + if (model in self.event_based_sensors): retain = False - # fix for rgb format if (key == "rgb" and self._is_int(value)): value = self._color_xiaomi_to_rgb(value) - topic = PATH_FMT.format(model=model, sid=sid, prop=key) - _LOGGER.info("Publishing message to topic " + topic + ": " + str(value) + ".") - self._client.publish(topic, payload=value, qos=0, retain=retain) + if self.json == True: + PATH_FMT = self.prefix + "/{model}/{sid}/json" + topic = PATH_FMT.format(model=model, sid=sid) + values = {} + values['sid'] = sid + for key, value in data.items(): + values[key] = value + jsondata = json.dumps(values) + _LOGGER.info("Publishing message to topic " + topic + ": " + str(jsondata) + ".") + self._client.publish(topic, payload=jsondata, qos=0, retain=retain) + else: + for key, value in data.items(): + PATH_FMT = self.prefix + "/{model}/{sid}/{prop}" + topic = PATH_FMT.format(model=model, sid=sid, prop=key) + _LOGGER.info("Publishing message to topic " + topic + ": " + str(value) + ".") + self._client.publish(topic, payload=value, qos=0, retain=retain) def _mqtt_on_connect(self, client, userdata, rc, unk): _LOGGER.info("Connected to mqtt server.") From 3754c8d08d1ca4f055512d36813b9cd8f7900a5e Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 11:08:36 +0300 Subject: [PATCH 31/36] Added support for JSON report instead of properties. --- .semver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.semver b/.semver index 3eefcb9..7dea76e 100644 --- a/.semver +++ b/.semver @@ -1 +1 @@ -1.0.0 +1.0.1 From d47548ce244abdf7ff7230656e5b218348ff7a65 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 11:12:45 +0300 Subject: [PATCH 32/36] README change. --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ccd3bdc..9e6b757 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,12 @@ will turn on plug/heater and translate devices state from gateway: "home/plug/heater/status" on ``` +## Architecture +Docker image support following architectures (you must choose your architecture in docker-compose): +- armhf (raspberry pi 3, arm32v7) +- i386 (x86 pc) +- x64 (x64 pc) + ## Config Edit file config/config-sample.yaml and rename it to config/config.yaml @@ -21,7 +27,7 @@ Edit file config/config-sample.yaml and rename it to config/config.yaml Sample docker-compose.yaml file for user: ``` aqara: - image: monster1025/aqara-mqtt + image: monster1025/aqara-mqtt:1-armhf container_name: aqara volumes: - "./config:/app/config" From a0979f4e3953ed89d50b64f6ff7e8a57befc5daa Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 12:15:45 +0300 Subject: [PATCH 33/36] travis docker layers cache --- .travis.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.travis.yml b/.travis.yml index 76c6891..17d42a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,11 @@ env: - MINOR=$(cut -d. -f2 .semver) - PATCH=$(cut -d. -f3 .semver) +cache: + bundler: true + directories: + - $HOME/docker + jobs: include: - stage: build x64 image @@ -78,6 +83,15 @@ jobs: before_script: - ARCH=armhf + before_cache: + # Save tagged docker images + - > + mkdir -p $HOME/docker && docker images -a --filter='dangling=false' --format '{{.Repository}}:{{.Tag}} {{.ID}}' + | xargs -n 2 -t sh -c 'test -e $HOME/docker/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker/$1.tar.gz' + before_install: + # Load cached docker images + - if [[ -d $HOME/docker ]]; then ls $HOME/docker/*.tar.gz | xargs -I {file} sh -c "zcat {file} | docker load"; fi + script: # prepare qemu - docker run --rm --privileged multiarch/qemu-user-static:register --reset From 693f3a21de6bd39c6b2326310219dbce023f79c1 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 12:52:56 +0300 Subject: [PATCH 34/36] travis docker layers cache --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 17d42a3..4fa5f6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -86,7 +86,7 @@ jobs: before_cache: # Save tagged docker images - > - mkdir -p $HOME/docker && docker images -a --filter='dangling=false' --format '{{.Repository}}:{{.Tag}} {{.ID}}' + mkdir -p $HOME/docker && docker images -a --format '{{.Repository}}:{{.Tag}} {{.ID}}' | xargs -n 2 -t sh -c 'test -e $HOME/docker/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker/$1.tar.gz' before_install: # Load cached docker images From 219df48228bddf05f80bde27d29407d8ca031993 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 13:26:48 +0300 Subject: [PATCH 35/36] travis docker layers cache --- .travis.yml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4fa5f6a..a40c196 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ env: cache: bundler: true directories: - - $HOME/docker + - /var/lib/docker/ jobs: include: @@ -82,16 +82,7 @@ jobs: - stage: build armhf image before_script: - ARCH=armhf - - before_cache: - # Save tagged docker images - - > - mkdir -p $HOME/docker && docker images -a --format '{{.Repository}}:{{.Tag}} {{.ID}}' - | xargs -n 2 -t sh -c 'test -e $HOME/docker/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker/$1.tar.gz' - before_install: - # Load cached docker images - - if [[ -d $HOME/docker ]]; then ls $HOME/docker/*.tar.gz | xargs -I {file} sh -c "zcat {file} | docker load"; fi - + script: # prepare qemu - docker run --rm --privileged multiarch/qemu-user-static:register --reset From f0eda582e12311858ac70b3cad27715b38043c8a Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Feb 2018 13:34:36 +0300 Subject: [PATCH 36/36] travis docker layers cache - cant get it working ( --- .travis.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index a40c196..a30ad4a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,11 +12,6 @@ env: - MINOR=$(cut -d. -f2 .semver) - PATCH=$(cut -d. -f3 .semver) -cache: - bundler: true - directories: - - /var/lib/docker/ - jobs: include: - stage: build x64 image