1

Elixir 部署系列

Erlang/Elixir: 用Distillery替换Exam打包器
Erlang/Elixir: Edeliver 持续部署 Checklist
Erlang/Elixir: 使用 Edeliver 进行持续部署

本文是基于 Erlang/Elixir: 使用 Edeliver 进行持续部署 文章经过一周的试错, 总结出来的工作流.

1. 假定当前版本为0.1.16, 需要升级到0.1.17, 需要在mix.exs文件中提升版本号

diff --git a/mix.exs b/mix.exs
index 88a39dc..c338b63 100755
--- a/mix.exs
+++ b/mix.exs
@@ -5,7 +5,7 @@ defmodule TestApp.Mixfile do
     [
       app: :test_app,
       description: "A test app",
-      version: "0.1.16",
+      version: "0.1.17",
       elixir: "~> 1.2",
       build_embedded: Mix.env in [:prod],
       start_permanent: Mix.env == :prod,

2. Git/Gitflow版本发布

git add .                                              
git commit -m 'bump version to 0.1.17'                 
git push                                               
git flow release start 0.1.17                          
git flow release publish 0.1.17
git flow release finish -m 'Release 0.1.17' 0.1.17
git push
git push --tags

3. 一行命令发布新版本(替换)

mix deps.update --all
mix edeliver update production --branch=master --start-deploy --verbose --to=0.1.17

4. 一行命令发布新版本(热更)

mix edeliver build upgrade --verbose --start-deploy --branch=master --to=0.1.17
mix edeliver deploy upgrade to production --verbose --version=0.1.17

5. 上面的命令可以编写一个 SHELL 脚本进行自动化部署


developerworks
1.7k 声望266 粉丝