Skip to content

Commit

Permalink
enhancement: Introduce continuous deployment (#199)
Browse files Browse the repository at this point in the history
  • Loading branch information
mrapacz authored Dec 4, 2017
1 parent 60575ed commit f6f3608
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 15 deletions.
29 changes: 17 additions & 12 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,25 @@
dist: trusty

language: elixir

elixir:
- 1.4.5

otp_release:
- 20.0

addons:
postgresql: '9.4'

ssh_known_hosts: $HOST
sudo: false

services:
- postgresql

cache:
directories:
- sysconfcpus
- aion/deps
- aion/web/elm/elm-stuff/build-artifacts

before_install:
- openssl aes-256-cbc -K $encrypted_452de06ba3a9_key -iv $encrypted_452de06ba3a9_iv
-in .travis/id_rsa.enc -out .travis/id_rsa -d

install:
- |
if [ ! -d sysconfcpus/bin ];
Expand All @@ -43,15 +41,22 @@ before_script:
- mix do ecto.create, ecto.migrate

script:
- cd web/elm &&
../../node_modules/elm/binwrappers/elm-package install --yes &&
$TRAVIS_BUILD_DIR/sysconfcpus/bin/sysconfcpus -n 2 ../../node_modules/elm/binwrappers/elm-make --yes src/App.elm &&
rm -rf index.html &&
cd ../../
- cd web/elm && ../../node_modules/elm/binwrappers/elm-package install --yes && $TRAVIS_BUILD_DIR/sysconfcpus/bin/sysconfcpus
-n 2 ../../node_modules/elm/binwrappers/elm-make --yes src/App.elm && rm -rf index.html
&& cd ../../
- mix credo --strict
- mix test
- cd ..

notifications:
email: false
slack:
secure: 0wrGLWdpp9HLujCNNwJnPvmfQmK3phQXbUj/EZ/x/YROEp1TdaDzLnXI4Qo6JyZszmH+zFb3S58iiOUrX2oCJFhdUGz/tN8YSBQBdMDPhi602BfarK4dfOSsnMq60KYzEV+zkM3GQFXIl/UudeZ5AhEpEn4tF6HrjSYqMOAJkjv4REesdY/GLDVSFfNF/KfXhd1afsB5IA5O0VMERr247aCtnr9pbHuE6yqicZCuw0aU41e3zPRm8BVUIP1np5jRaGCJs7Vpx/5Q+SpdTjqdtgB05APvHveupDJrGV2uVH2iXScxHIP5SZOJbaaUxkIvjjrMN4IW3IiFDjxDuN6PAFZfJ3mpTowtDl96t4fgOfTM9a/EVv7OlPeQAVkOvHIdfsZ2PUpGV7+yWN1RssyiaYxcHdJ825on2jb+lj7lhsZmlGDfa/8GhkPQuKJr/msaXaposYDa42460hinn4UPHGrgO4AuGrXF9Cc7/xbGIdAkHogsswYy1X2XDf7aDR5yktgz/sQ1aHnvF9K1SzopDd1TS6YjLpgN0Y4kqWrUqWxHM6Ne1mTYLTREfbs+49+oPaq+n+HilFB0BAjCpwtwvKi+VhPgH5ZCSYL0hqiYpsUNL2Q3oWUHra1YlPIc/2QtIf6E1XtpqADRqnI/Ow8XkTgi4xWq2gKmHn5jEZhW9Ng=

after_success:
- |
if [[ $TRAVIS_BRANCH == 'master' ]];
then
.travis/deploy.sh
fi
12 changes: 12 additions & 0 deletions .travis/deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

eval "$(ssh-agent -s)" # Start ssh-agent cache
chmod 600 .travis/id_rsa # Allow read access to the private key
ssh-add .travis/id_rsa # Add the private key to SSH

ssh -o "StrictHostKeyChecking no" $USER@$HOST /bin/bash <<EOF
source ~/.bashrc && \
cd $DEPLOY_DIR && \
git pull origin master && \
make deploy
EOF
Binary file added .travis/id_rsa.enc
Binary file not shown.
1 change: 1 addition & 0 deletions .travis/id_rsa.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYbGhu5vsQvVWnE+3Os8gSBhJD6euduJ32z6V0XylnXnzcCuH+xBE2qklh3JyNpheBZ+ZHv98m3Y5123WysKFQSeBd2r2ykqwlqiePpddvbMteAlOXoiCGl5EzcJ5rqRrUu7teyHC/DJr1X8HGUHTIAS0HfeblfaYLJyka/YdxqnkUb1sMJcTP9u7rZyCY8Nh/EcP2Ww2h0dYVNecJKz9lsZbDT2hhgillzaKLwklQEXlUlo1LVPevcltl0XpKC6zx2jISfHY2OsABkCLY8nM6PwrOSzJd4nzPOZ5TIeouJhcYurxBW/nyIQfnaDBK32OStFez7uyHDbbmk6IvSbd9 maciej@Haven
15 changes: 12 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,21 @@ deploy-stop:
deploy-start:
cd aion && sudo rel/aion/bin/aion start

deploy-restart:
cd aion && sudo rel/aion/bin/aion restart

deploy: ## Create a release and run the production server
kiex use 1.4.5 && \
cd aion && \
MIX_ENV=prod mix do deps.get, compile && \
npm install && \
brunch build --production && \
MIX_ENV=prod mix do phoenix.digest, release && \
sudo rel/aion/bin/aion start
MIX_ENV=prod mix phoenix.digest

# Try to shutdown running server, continue regardless
@-sudo ./aion/rel/aion/bin/aion stop && \
([ $$? -eq 0 ] && echo "Successfully stopped running server") || \
echo "Couldn't shut down the server, apparently it was not running"

cd aion && MIX_ENV=prod mix release
sudo ./aion/rel/aion/bin/aion start

0 comments on commit f6f3608

Please sign in to comment.