aboutsummaryrefslogtreecommitdiff
path: root/.drone.yml
diff options
context:
space:
mode:
authorThedro Neely <thedroneely@gmail.com>2019-07-24 00:59:39 -0400
committerThedro Neely <thedroneely@gmail.com>2019-07-24 00:59:39 -0400
commit742b40c7710f262454fdeb3f7d33860e18835a8e (patch)
tree5392a6f70f5b733042264c812ee01a0b7d54d24d /.drone.yml
parent7a6524e90b907a44a032a55fe7f6e94117c68efc (diff)
downloadthedroneely.com-742b40c7710f262454fdeb3f7d33860e18835a8e.tar.gz
thedroneely.com-742b40c7710f262454fdeb3f7d33860e18835a8e.tar.bz2
thedroneely.com-742b40c7710f262454fdeb3f7d33860e18835a8e.zip
.drone.yml: Implement Drone CI
Diffstat (limited to '.drone.yml')
-rw-r--r--.drone.yml183
1 files changed, 183 insertions, 0 deletions
diff --git a/.drone.yml b/.drone.yml
new file mode 100644
index 0000000..b7d35b6
--- /dev/null
+++ b/.drone.yml
@@ -0,0 +1,183 @@
+kind: pipeline
+name: build-package-deploy
+
+
+steps:
+- name: build
+ image: composer:1.8.6
+ commands:
+
+ - composer -V
+ - composer install
+
+
+- name: secrets
+ image: alpine:3.10
+ environment:
+ EMAIL_USERNAME:
+ from_secret: email_username
+ EMAIL_PASSWORD:
+ from_secret: email_password
+ PGSQL_USERNAME:
+ from_secret: pgsql_username
+ PGSQL_PASSWORD:
+ from_secret: pgsql_password
+ commands:
+
+ - mv AppConfigBuild.php AppConfig.php
+ - sed -i "s|pgsql_username|$PGSQL_USERNAME|" AppConfig.php
+ - sed -i "s|pgsql_password|$PGSQL_PASSWORD|" AppConfig.php
+ - sed -i "s|email_username|$EMAIL_USERNAME|" AppConfig.php
+ - sed -i "s|email_password|$EMAIL_PASSWORD|" AppConfig.php
+
+
+- name: synchronize
+ image: alpine:3.10
+ environment:
+ SSH_KEY:
+ from_secret: ssh_key
+ SSH_KEY_PASSWORD:
+ from_secret: ssh_key_password
+ SERVER_IP:
+ from_secret: server_ip
+ SERVER_USER:
+ from_secret: server_user
+ ORIGIN_HOST:
+ from_secret: origin_host
+ ORIGIN_USER:
+ from_secret: origin_user
+ ORIGIN_PORT:
+ from_secret: origin_port
+ commands:
+
+ - apk add openssh
+ - echo "$SSH_KEY" > ssh-key && chmod 600 ssh-key
+ - eval $(ssh-agent)
+ - echo "$SSH_KEY_PASSWORD" | ssh-add ssh-key
+
+ - >
+ scp -rp -o StrictHostKeyChecking=no -vT -i ssh-key
+ $SERVER_USER@$SERVER_IP:/srv/http/thedroneely.com/generators/hugo/content generators/hugo/
+
+ - ls -lR generators/hugo/content
+
+ - >
+ scp -rp -o StrictHostKeyChecking=no -vT -i ssh-key
+ $SERVER_USER@$SERVER_IP:/srv/http/thedroneely.com/cockpit/storage/data/collections.sqlite .
+
+ - ls -la
+
+ - >
+ scp -rp -o StrictHostKeyChecking=no -P $ORIGIN_PORT -vT -i ssh-key collections.sqlite
+ $ORIGIN_USER@$ORIGIN_HOST:/srv/http/staging/thedroneely.com/cockpit/storage/data/collections.sqlite.new
+
+ - >
+ ssh -o StrictHostKeyChecking=no -p $ORIGIN_PORT -vT -i ssh-key $ORIGIN_USER@$ORIGIN_HOST
+ '
+ cd /srv/http/staging/thedroneely.com/cockpit/storage/data/ &&
+ cmp --silent collections.sqlite collections.sqlite.new ||
+ {
+ cp collections.sqlite collections.sqlite-$(date +%H%M-%d%m-%Y) && mv collections.sqlite.new collections.sqlite &&
+ touch collections.sqlite;
+ }
+ '
+
+ - ls -la
+
+ - scp -rp -o StrictHostKeyChecking=no -vT -i ssh-key $SERVER_USER@$SERVER_IP:/srv/http/thedroneely.com/public/images .
+
+ - scp -rp -o StrictHostKeyChecking=no -vT -i ssh-key $SERVER_USER@$SERVER_IP:/srv/http/thedroneely.com/public/videos .
+
+ - ls -la
+
+ - >
+ scp -r -o StrictHostKeyChecking=no -P $ORIGIN_PORT -vT -i ssh-key images/*
+ $ORIGIN_USER@$ORIGIN_HOST:/srv/http/staging/thedroneely.com/public/images
+
+ - >
+ scp -r -o StrictHostKeyChecking=no -P $ORIGIN_PORT -vT -i ssh-key videos/*
+ $ORIGIN_USER@$ORIGIN_HOST:/srv/http/staging/thedroneely.com/public/videos
+
+
+- name: minify
+ image: alpine:3.10
+ commands:
+
+ - wget https://github.com/tdewolff/minify/releases/download/v2.5.0/minify_2.5.0_linux_amd64.tar.gz
+ - tar -xvf minify_2.5.0_linux_amd64.tar.gz
+
+ - ./minify --version
+ - ./minify public/css/tdro.css > public/css/tdro.min.$(date +%d%m%Y%H%M).css
+ - ./minify public/css/tdro-dark.css > public/css/tdro-dark.min.$(date +%d%m%Y%H%M).css
+ - ./minify public/css/bulma-timeline.css > public/css/bulma-timeline.min.$(date +%d%m%Y%H%M).css
+ - ./minify public/css/syntax-highlight.css > public/css/syntax-highlight.min.$(date +%d%m%Y%H%M).css
+ - ./minify public/js/app.js > public/js/app-js.min.$(date +%d%m%Y%H%M).css
+
+ - sed -i "s|tdro.css|$(find public/css -name "tdro.min*" | awk -F/ '{print $NF}')|" app/views/snippets/stylesheets.php
+ - sed -i "s|tdro-dark.css|$(find public/css -name "tdro-dark.min*" | awk -F/ '{print $NF}')|" app/views/snippets/stylesheets.php
+ - sed -i "s|bulma-timeline.css|$(find public/css -name "bulma-timeline.min*" | awk -F/ '{print $NF}')|" app/views/resume.view.php
+ - sed -i "s|app.js|$(find public/js -name "app-js.min*" | awk -F/ '{print $NF}')|" app/views/partials/footer.php
+
+
+- name: prepare
+ image: alpine:3.10
+ commands:
+
+ - sed -i 's|""|"https://www.thedroneely.com/"|' generators/hugo/config.yaml
+ - grep baseURL generators/hugo/config.yaml
+ - sed -i 's|/images/thumbnails|images/thumbnails|' generators/hugo/themes/tdro/layouts/partials/article-image.html
+ - cat generators/hugo/themes/tdro/layouts/partials/article-image.html
+ - cd generators/hugo && ln -s ../../public/ public
+
+
+- name: deploy
+ image: alpine:3.10
+ environment:
+ NAME: thedroneely.com
+ SSH_KEY:
+ from_secret: ssh_key
+ SSH_KEY_PASSWORD:
+ from_secret: ssh_key_password
+ SERVER_IP:
+ from_secret: server_ip
+ SERVER_USER:
+ from_secret: server_user
+ commands:
+
+ - apk add openssh
+ - echo "$SSH_KEY" > ssh-key && chmod 600 ssh-key
+ - eval $(ssh-agent)
+ - echo "$SSH_KEY_PASSWORD" | ssh-add ssh-key
+
+ - >
+ tar -czf $NAME.tar.gz app bootstrap generators
+ public vendor AppConfig.php composer.json composer.lock
+
+ - >
+ scp -r -o StrictHostKeyChecking=no -vT -i ssh-key
+ $NAME.tar.gz $SERVER_USER@$SERVER_IP:/srv/deploys/$NAME/
+
+ - >
+ ssh -o StrictHostKeyChecking=no -vT -i ssh-key $SERVER_USER@$SERVER_IP
+ '
+ export DATE=$(date +%H%M-%d%m-%Y) NAME=thedroneely.com &&
+ cd /srv/deploys/$NAME &&
+
+ mkdir $NAME-$DATE &&
+ tar -xvf $NAME.tar.gz -C $NAME-$DATE &&
+ rm $NAME.tar.gz &&
+
+ cp -r /srv/http/$NAME-deploy/cockpit $NAME-$DATE/ &&
+ cp -r /srv/http/$NAME-deploy/public/images $NAME-$DATE/public/ &&
+ cp -r /srv/http/$NAME-deploy/public/uploads $NAME-$DATE/public/ &&
+ cp -r /srv/http/$NAME-deploy/public/videos $NAME-$DATE/public/ &&
+
+ cd $NAME-$DATE/generators/hugo &&
+ hugo &&
+ cd /srv/deploys/$NAME &&
+
+ ln -s $NAME-$DATE $NAME-deploy-$DATE &&
+ mv -Tf $NAME-deploy-$DATE $NAME-deploy &&
+ chown nginx:nginx -R $NAME-deploy $NAME-$DATE &&
+ ls -la
+ '