Packages

helijia Skylab deployment package

Current section

Files

Jump to
helijia_skylab lib mix ship.ex
Raw

lib/mix/ship.ex

defmodule Mix.Tasks.Skylab.Ship do
@moduledoc """
效仿 `mohile-v3` release 自动发布 `MR` 到 master
"""
require Logger
@owner_email System.get_env("APP_OWNER_EMAIL")
@project_id System.get_env("CI_PROJECT_ID")
def run(_args) do
ret =
Skylab.ShipIt.run(
app_owner_email: @owner_email,
project_id: @project_id,
user_email: user()
)
case ret do
{:owner, {:error, :app_owner_not_set}} ->
Logger.error("应用的 owner 没有设置,请配置 APP_OWNER_EMAIL 环境变量")
exit({:shutdown, 2})
{:ship, {:error, res}} ->
Logger.error("创建 MR 失败")
Logger.error(res |> inspect)
exit({:shutdown, 1})
:ok ->
Logger.info("done.")
end
end
defp user do
System.get_env("GITLAB_USER_EMAIL") ||
'git config user.name'
|> :os.cmd()
|> to_string()
|> String.replace("\n", "")
end
end