From 66ba25d5fe25439d19d66a7c03dd7e4bf4a0e3a6 Mon Sep 17 00:00:00 2001 From: Felix Bartels Date: Fri, 16 Oct 2020 21:50:57 +0000 Subject: [PATCH] Add helper for cli and use it to update the drone server itself (#1) --- .drone.yml | 43 +++++++++++++++++++++++++++++++++ Makefile | 6 +++++ helpers/cloudron-cli/Dockerfile | 10 ++++++++ helpers/cloudron-cli/Makefile | 20 +++++++++++++++ 4 files changed, 79 insertions(+) create mode 100644 .drone.yml create mode 100644 helpers/cloudron-cli/Dockerfile create mode 100644 helpers/cloudron-cli/Makefile diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..bd1abcb --- /dev/null +++ b/.drone.yml @@ -0,0 +1,43 @@ +--- +kind: pipeline +type: docker +name: default + +steps: +- name: cloudron build & update + image: fbartels/cloudron-cli + volumes: + - name: dockersock + path: /var/run + environment: + DOCKER_USERNAME: {from_secret: DOCKER_USERNAME} + DOCKER_PASSWORD: {from_secret: DOCKER_PASSWORD} + CLOUDRON_SERVER: {from_secret: CLOUDRON_SERVER} + CLOUDRON_TOKEN: {from_secret: CLOUDRON_TOKEN} + commands: + - dockerize -wait file:///var/run/docker.sock -timeout 60s + - docker ps -a + - echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin + - make build + - make update-ci + when: + branch: + include: + - master + +services: +- name: docker + image: docker:dind + privileged: true + command: [ --storage-driver=aufs] + volumes: + - name: dockersock + path: /var/run + when: + branch: + include: + - master + +volumes: +- name: dockersock + temp: {} diff --git a/Makefile b/Makefile index 80f1534..af23427 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,7 @@ CLOUDRON_APP ?= drone CLOUDRON_ID := $(shell jq -r .id CloudronManifest.json) +CLOUDRON_SERVER ?= my.9wd.eu +CLOUDRON_TOKEN ?=123 DOCKER_REPO ?= fbartels .PHONY: default @@ -17,6 +19,10 @@ build: update: build cloudron update --app ${CLOUDRON_APP} +.PHONY: update-ci +update-ci: + cloudron update --server ${CLOUDRON_SERVER} --token ${CLOUDRON_TOKEN} --app ${CLOUDRON_APP} + .PHONY: install install: build cloudron install --location ${CLOUDRON_APP} diff --git a/helpers/cloudron-cli/Dockerfile b/helpers/cloudron-cli/Dockerfile new file mode 100644 index 0000000..3769681 --- /dev/null +++ b/helpers/cloudron-cli/Dockerfile @@ -0,0 +1,10 @@ +FROM plugins/docker:latest +RUN apk add --no-cache jq make npm perl python +ENV DOCKERIZE_VERSION v0.6.1 +RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz && \ + tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz && \ + rm dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz + +# use --unsafe to not execute post actions as user nobody +RUN npm -g install cloudron@4.5.3 --unsafe && npm cache clean --force && \ + cloudron --version diff --git a/helpers/cloudron-cli/Makefile b/helpers/cloudron-cli/Makefile new file mode 100644 index 0000000..8d21ffb --- /dev/null +++ b/helpers/cloudron-cli/Makefile @@ -0,0 +1,20 @@ +DOCKER_REPO ?= fbartels +DOCKER_IMAGE := cloudron-cli +VERSION := $(shell grep cloudron@ Dockerfile | cut -d' ' -f 5 | cut -d@ -f 2) + +.PHONY: default +default: push + +.PHONY: build +build: + docker build . -t $(DOCKER_IMAGE) + +.PHONY: tag +tag: build + docker tag $(DOCKER_IMAGE) $(DOCKER_REPO)/$(DOCKER_IMAGE):latest + docker tag $(DOCKER_IMAGE) $(DOCKER_REPO)/$(DOCKER_IMAGE):$(VERSION) + +.PHONY: push +push: tag + docker push $(DOCKER_REPO)/$(DOCKER_IMAGE):latest + docker push $(DOCKER_REPO)/$(DOCKER_IMAGE):$(VERSION)