Skip to content

Commit

Permalink
Build and deploy to Heroku
Browse files Browse the repository at this point in the history
  • Loading branch information
AndrewDryga committed Oct 30, 2016
1 parent 17442b2 commit 95f8e88
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 11 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ env:
- MAIN_BRANCHES="master develop staging" # Branches on which you want version to be incremented
- RELEASE_BRANCH="master"
- secure: r4X8qA7x/vfjc8cVFvd32HI2vjG6+K4qzXcNs4wVB113i4Bd7hWGgMELssP8qoBDOYZaTRUcmJreMraJJx1sJ/Eaav87dGu7ujtwCX6Ry9h+Vi0tLIfZeAWqusQiwEOELPfDDrzlck9Up3c95rMnYsCBBpjHUfUvq46BewpIUmh/FXzF2DvRneIqY+r8AoHeUimRQuUClsnhcq4QInj1EpBdxL2T0TJJm9vHU6homnVOqlcaUw9TU+zU3NvizzfHwKI31gjuEgaLXwnOVJeAjPuW0/ysKzAO/Z5ijPp9ORvL2XuB4xzl0MHdk4undVuBOjIHF5wqmOC2nRe4/43urNLyYj2pFHDBcce21ShZvtrkCm45es52f6RZMLoVnmQdZOSlQuSnSXDlXTQForVSGXxg9Odia2AMryUseaIHu/tM7Ql7/m5D5/rFp6mnG31PDvZmDgaLJvIw+7HxzuAfFkvkIAn68ML7buiBxtk5K6O0HyID+WR6tSqVkpv52aNI6bZCwC8K2NyVGGTqJR+0ShOfwuWdp77VazI9rC0bejN+gJY1cixeg9Kdi4ApPE69Z1tGldRHO1ifDgkALTw6DGYAH52vrDrS0k0EZr1nbdEdd7HLlD2s6a1j0n/fT6hCZBGl2sb9ljEr9//DrdbXQZyWihtXY9N4/s82txf8o0o=
- secure: aI8fdolKCm9CDEE54sLMAXKzOyvA28NUcJgV+CxDQzePrMNyvczIk+G2gz/CFAhE9rs83WBV1OeEsJiMgmTmFe8NN2bV2vxSZI3iZTcmgq5tPwsHeuZKACchHQkMVKd84J67e/1Kbt7B6iytA9L8BcstmYt8b+JKRE29CprOmRa27VcCd8/1JNn+ue2oJ2qUpA5XLX32e5P7LjDR1LMaf0VDRPXVJUjNQ0w8H0c0NInBZcHiApapOaByNdat1vRepAVG7yT0M3ur8PoIe0QUqpTlKP8axvxSdW+8/eZF6QXn9FUBxgVEhLc4SE4rLpIRTruTUiO32f+96r5PM2nCqPS+OdiXUdr7uUuu2O+rnzhztYO6tF0NkbSrro7KV2ujhmQQQy0sdN6dNmsqkmdkmee0pxELnYiiD1PmIEpXexA+q9QTlVSz1eYHTgs7ah/MK9foitKwOmMnk8CQqyBzr7OVjnVqxzjYy0BDN11NNt3Y8wEULusePlznPdLq9rZdtuFdh8OUllecG0n/1257CTZmZJXV5ohQKLMauS24o6mUJmJI07YRxUpW7IiqrfHvruQopuvc08g5JW86wFYZo6cKg/kWISAUc/iA5zXX2LXL5uEKnquaj9dU/T13ndCoNBw22UPRHUvYBKQSeZJQCrmMY8TnlCzsklwJbywMaH4=
branches:
# Releases are generated automatically, stop infinite build loop
except:
Expand Down Expand Up @@ -53,3 +54,4 @@ script:
- "MIX_TEST_HOST=localhost MIX_TEST_PORT=4000 mix test test/acceptance"
after_success:
- ./bin/ci/push.sh
- ./bin/ci/deploy.sh
30 changes: 30 additions & 0 deletions bin/ci/deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash
# Deploy container to a Heroku.
# You need to specify $HEROKU_API_KEY before using this script.

# Find mix.exs inside project tree.
# This allows to call bash scripts within any folder inside project.
PROJECT_DIR=$(git rev-parse --show-toplevel)
if [ ! -f "${PROJECT_DIR}/mix.exs" ]; then
echo "[E] Can't find '${PROJECT_DIR}/mix.exs'."
echo " Check that you run this script inside git repo or init a new one in project root."
fi

# Extract project name and version from mix.exs
PROJECT_NAME=$(sed -n 's/.*app: :\([^, ]*\).*/\1/pg' "${PROJECT_DIR}/mix.exs")
PROJECT_VERSION=$(sed -n 's/.*@version "\([^"]*\)".*/\1/pg' "${PROJECT_DIR}/mix.exs")

echo "Logging in into Heroku";
heroku plugins:install heroku-container-registry
heroku login
heroku container:login

if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
if [ "$TRAVIS_BRANCH" == "$RELEASE_BRANCH" ]; then
docker tag "${PROJECT_NAME}:${PROJECT_VERSION}" "registry.heroku.com/${PROJECT_NAME}/web"
fi;

if [[ "$MAIN_BRANCHES" =~ "$TRAVIS_BRANCH" ]]; then
docker push "registry.heroku.com/${PROJECT_NAME}/web"
fi;
fi;
15 changes: 7 additions & 8 deletions mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ defmodule Tokenizer.Mixfile do
# Type "mix help compile.app" for more information
def application do
[applications: [:logger, :phoenix, :phoenix_ecto, :cowboy, :httpoison, :poison,
:ecto, :postgrex, :ecto_enum, :timex],
included_applications: [:credit_card, :confex, :eview],
:ecto, :postgrex, :ecto_enum, :timex, :credit_card, :confex, :eview],
mod: {Tokenizer, []}]
end

Expand All @@ -49,18 +48,18 @@ defmodule Tokenizer.Mixfile do
# Type "mix help deps" for more examples and options
defp deps do
[{:distillery, "~> 0.10"},
{:confex, "~> 1.4"},
{:eview, "~> 0.2.1"},
{:phoenix, "~> 1.2"},
{:phoenix_ecto, "3.1.0-rc.0"}, # TODO: Update when Ecto will release v2.1
{:ecto, "2.1.0-rc.3", override: true}, # TODO: Update when Ecto will release v2.1
{:ecto_enum, github: "gjaldon/ecto_enum", branch: "ecto-2.0"},
{:postgrex, "~> 0.12", override: true},
{:confex, "~> 1.4"},
{:eview, "~> 0.2.1"},
{:cowboy, "~> 1.0"},
{:poison, "~> 2.2"},
{:httpoison, "~> 0.9.2"},
{:poison, "~> 3.0", override: true},
{:ecto_enum, git: "https://github.com/gjaldon/ecto_enum", branch: "ecto-2.0", override: true},
{:phoenix, "~> 1.2"},
{:credit_card, "~> 1.0"},
{:timex, "~> 3.0"},
{:phoenix_ecto, "3.1.0-rc.0"}, # TODO: Update when Ecto will release v2.1
{:ex_doc, ">= 0.0.0", only: [:dev, :test]},
{:excoveralls, "~> 0.5", only: [:dev, :test]},
{:dogma, "> 0.1.0", only: [:dev, :test]},
Expand Down
6 changes: 3 additions & 3 deletions mix.lock
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
"dogma": {:hex, :dogma, "0.1.12", "d9ddf699a21dc466cc1f5390950d11f650822d16d02181f8cecf839ed8b2d306", [:mix], [{:poison, ">= 2.0.0", [hex: :poison, optional: false]}]},
"earmark": {:hex, :earmark, "1.0.2", "a0b0904d74ecc14da8bd2e6e0248e1a409a2bc91aade75fcf428125603de3853", [:mix], []},
"ecto": {:hex, :ecto, "2.1.0-rc.3", "63905a289ae923f1819574d71e79a90db5b3fbe50dbdaa60ab6a8c534c4e16be", [:mix], [{:db_connection, "~> 1.0-rc.4", [hex: :db_connection, optional: true]}, {:decimal, "~> 1.2", [hex: :decimal, optional: false]}, {:mariaex, "~> 0.7.7", [hex: :mariaex, optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, optional: false]}, {:postgrex, "~> 0.12.0", [hex: :postgrex, optional: true]}, {:sbroker, "~> 1.0-beta", [hex: :sbroker, optional: true]}]},
"ecto_enum": {:git, "https://github.com/gjaldon/ecto_enum", "1f0f0c5f4e01e373c800346b0000fb1ee3fb10b2", [branch: "ecto-2.0"]},
"eview": {:hex, :eview, "0.2.5", "c88ce2cfc914cd366668d7c5cb98dc05040172054b9ca8c137e6ea97d56b3b80", [:mix], [{:credit_card, "~> 1.0", [hex: :credit_card, optional: true]}, {:ecto, "~> 2.1.0-rc.3", [hex: :ecto, optional: true]}, {:nex_json_schema, "~> 0.5.2", [hex: :nex_json_schema, optional: true]}, {:plug, "~> 1.2", [hex: :plug, optional: false]}, {:poison, "~> 2.0", [hex: :poison, optional: false]}]},
"ecto_enum": {:git, "https://github.com/gjaldon/ecto_enum.git", "1f0f0c5f4e01e373c800346b0000fb1ee3fb10b2", [branch: "ecto-2.0"]},
"eview": {:hex, :eview, "0.2.6", "c75a55ebf3f9f9fa190b0a42e2c77066d0278d2342c2451a2edcaa1b9a4bcbad", [:mix], [{:credit_card, "~> 1.0", [hex: :credit_card, optional: true]}, {:ecto, "~> 2.1.0-rc.3", [hex: :ecto, optional: true]}, {:nex_json_schema, "~> 0.5.2", [hex: :nex_json_schema, optional: true]}, {:plug, "~> 1.2", [hex: :plug, optional: false]}, {:poison, "~> 2.0", [hex: :poison, optional: false]}]},
"ex_doc": {:hex, :ex_doc, "0.14.3", "e61cec6cf9731d7d23d254266ab06ac1decbb7651c3d1568402ec535d387b6f7", [:mix], [{:earmark, "~> 1.0", [hex: :earmark, optional: false]}]},
"excoveralls": {:hex, :excoveralls, "0.5.7", "5d26e4a7cdf08294217594a1b0643636accc2ad30e984d62f1d166f70629ff50", [:mix], [{:exjsx, "~> 3.0", [hex: :exjsx, optional: false]}, {:hackney, ">= 0.12.0", [hex: :hackney, optional: false]}]},
"exjsx": {:hex, :exjsx, "3.2.1", "1bc5bf1e4fd249104178f0885030bcd75a4526f4d2a1e976f4b428d347614f0f", [:mix], [{:jsx, "~> 2.8.0", [hex: :jsx, optional: false]}]},
Expand All @@ -30,7 +30,7 @@
"phoenix_ecto": {:hex, :phoenix_ecto, "3.1.0-rc.0", "09bc4b2a5f31f28a36ee2d83b10717b96d8d4da9d34be0493c30ad4e2d780c35", [:mix], [{:ecto, "~> 2.1-rc", [hex: :ecto, optional: false]}, {:phoenix_html, "~> 2.6", [hex: :phoenix_html, optional: true]}, {:plug, "~> 1.0", [hex: :plug, optional: false]}]},
"phoenix_pubsub": {:hex, :phoenix_pubsub, "1.0.1", "c10ddf6237007c804bf2b8f3c4d5b99009b42eca3a0dfac04ea2d8001186056a", [:mix], []},
"plug": {:hex, :plug, "1.2.2", "cfbda521b54c92ab8ddffb173fbaabed8d8fc94bec07cd9bb58a84c1c501b0bd", [:mix], [{:cowboy, "~> 1.0", [hex: :cowboy, optional: true]}, {:mime, "~> 1.0", [hex: :mime, optional: false]}]},
"poison": {:hex, :poison, "3.0.0", "625ebd64d33ae2e65201c2c14d6c85c27cc8b68f2d0dd37828fde9c6920dd131", [:mix], []},
"poison": {:hex, :poison, "2.2.0", "4763b69a8a77bd77d26f477d196428b741261a761257ff1cf92753a0d4d24a63", [:mix], []},
"poolboy": {:hex, :poolboy, "1.5.1", "6b46163901cfd0a1b43d692657ed9d7e599853b3b21b95ae5ae0a777cf9b6ca8", [:rebar], []},
"postgrex": {:hex, :postgrex, "0.12.1", "2f8b46cb3a44dcd42f42938abedbfffe7e103ba4ce810ccbeee8dcf27ca0fb06", [:mix], [{:connection, "~> 1.0", [hex: :connection, optional: false]}, {:db_connection, "~> 1.0-rc.4", [hex: :db_connection, optional: false]}, {:decimal, "~> 1.0", [hex: :decimal, optional: false]}]},
"ranch": {:hex, :ranch, "1.2.1", "a6fb992c10f2187b46ffd17ce398ddf8a54f691b81768f9ef5f461ea7e28c762", [:make], []},
Expand Down

0 comments on commit 95f8e88

Please sign in to comment.