Packages

A Mix task that runs pre-release checks to ensure your Elixir package is ready for publication to Hex.

Current section

Files

Jump to
easy_publish lib easy_publish steps hex_build.ex
Raw

lib/easy_publish/steps/hex_build.ex

defmodule EasyPublish.Steps.HexBuild do
@moduledoc """
Validates the package builds successfully with hex.build.
"""
use EasyPublish.Step, name: "Hex package builds successfully"
@impl true
def options do
[{:skip_hex_build, type: :boolean, default: false, doc: "Skip hex.build validation"}]
end
@impl true
def execute(ctx) do
cond do
ctx.skip_hex_build ->
:skip
ctx.dry_run ->
info("Would run: mix hex.build")
:ok
true ->
case run_mix_task("hex.build") do
:ok -> :ok
{:error, _} -> {:error, "hex.build failed"}
end
end
end
end