Packages

Versioce provides a mix task for version bumping of your project.

Current section

Files

Jump to
versioce lib Hooks git.ex
Raw

lib/Hooks/git.ex

defmodule Versioce.PostHooks.Git.Commit do
@moduledoc """
Runs a `git commit` in your repository.
You can customize your commit message with `Versioce.Config.commit_message_template`
"""
use Versioce.PostHook
def run(version) do
Versioce.Config.commit_message_template()
|> String.replace("{version}", version, global: true)
|> Versioce.Git.commit()
version
end
end
defmodule Versioce.PostHooks.Git.Add do
@moduledoc """
Runs a `git add` in your repository.
By default only adds files from
your `Versioce.Config.files`. To change that set `Versioce.Config.dirty_add`
to `true`
"""
use Versioce.PostHook
def run(version) do
if Versioce.Config.dirty_add() do
Versioce.Git.add()
else
["mix.exs" | Versioce.Config.files()]
|> Versioce.Git.add()
end
version
end
end
defmodule Versioce.PostHooks.Git.Tag do
@moduledoc """
Runs `git add -a -m` in your repository.
You can change the tag template as well as tag message template with
`Versioce.Config.tag_template` and `Versioce.Config.tag_message_template`
"""
use Versioce.PostHook
def run(version) do
message =
Versioce.Config.tag_message_template()
|> String.replace("{version}", version, global: true)
Versioce.Config.tag_template()
|> String.replace("{version}", version, global: true)
|> Versioce.Git.tag(message)
version
end
end
defmodule Versioce.PostHooks.Git.Release do
@moduledoc """
An alias for: `Versioce.PostHooks.Git.Add`, `Versioce.PostHooks.Git.Commit`, `Versioce.PostHooks.Git.Tag`
"""
use Versioce.PostHook
alias Versioce.PostHooks.Git
def run(version) do
version
|> Git.Add.run()
|> Git.Commit.run()
|> Git.Tag.run()
end
end