diff options
author | Thedro Neely <thedroneely@gmail.com> | 2019-07-24 00:59:39 -0400 |
---|---|---|
committer | Thedro Neely <thedroneely@gmail.com> | 2019-07-24 00:59:39 -0400 |
commit | 742b40c7710f262454fdeb3f7d33860e18835a8e (patch) | |
tree | 5392a6f70f5b733042264c812ee01a0b7d54d24d /.drone.yml | |
parent | 7a6524e90b907a44a032a55fe7f6e94117c68efc (diff) | |
download | thedroneely.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.yml | 183 |
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 + ' |