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).js - 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/deploys/$NAME/$NAME-deploy/cockpit $NAME-$DATE/ && cp -r /srv/deploys/$NAME/$NAME-deploy/public/images $NAME-$DATE/public/ && cp -r /srv/deploys/$NAME/$NAME-deploy/public/uploads $NAME-$DATE/public/ && cp -r /srv/deploys/$NAME/$NAME-deploy/public/videos $NAME-$DATE/public/ && cd $NAME-$DATE/generators/hugo && hugo && cd /srv/deploys/$NAME && chattr -i -Rf "$(ls -t | awk "NR>8")" || true && rm -rf "$(ls -t | awk "NR>8")" && ln -s $NAME-$DATE $NAME-deploy-$DATE && mv -Tf $NAME-deploy-$DATE $NAME-deploy && chown nginx:nginx -R $NAME-deploy $NAME-$DATE && chattr +i $NAME-$DATE/generators/hugo/content/posts/archive.md && chattr +i $NAME-$DATE/generators/hugo/content/projects/archive.md && ls -la '