Packages

Spawn and manage Google Compute Engine instances over the REST API, with pluggable auth, telemetry, and an ergonomic instance builder.

Current section

Files

Jump to
Raw

mix.exs

defmodule GcpCompute.MixProject do
use Mix.Project
@version "0.2.0"
@source_url "https://github.com/nyo16/gcp_compute"
def project do
[
app: :gcp_compute,
version: @version,
elixir: "~> 1.19",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
deps: deps(),
description: description(),
package: package(),
docs: docs(),
dialyzer: dialyzer(),
name: "GcpCompute",
source_url: @source_url
]
end
def application do
[
extra_applications: [:logger]
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
defp deps do
[
{:req, "~> 0.5"},
{:nimble_options, "~> 1.1"},
{:telemetry, "~> 1.2"},
{:jason, "~> 1.4"},
# Optional: the default token provider integrates with Goth, but the
# library never hard-depends on it — bring your own TokenProvider.
{:goth, "~> 1.4", optional: true},
{:ex_doc, "~> 0.34", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}
]
end
defp dialyzer do
[
plt_local_path: "priv/plts",
plt_core_path: "priv/plts"
]
end
defp description do
"Spawn and manage Google Compute Engine instances over the REST API, " <>
"with pluggable auth, telemetry, and an ergonomic instance builder."
end
defp package do
[
licenses: ["MIT"],
links: %{"GitHub" => @source_url, "Changelog" => "#{@source_url}/blob/master/CHANGELOG.md"},
maintainers: ["niko"],
files: ~w(lib mix.exs README.md CHANGELOG.md LICENSE .formatter.exs)
]
end
defp docs do
[
main: "readme",
source_ref: "v#{@version}",
extras: [
"README.md",
"guides/getting-started.md",
"guides/configuring-machines.md",
"guides/testing.md",
"CHANGELOG.md"
],
groups_for_extras: [
Guides: ~r"guides/.*"
],
groups_for_modules: [
"Core API": [GcpCompute, GcpCompute.Instances, GcpCompute.Operations],
Configuration: [GcpCompute.Config],
Auth: [
GcpCompute.TokenProvider,
GcpCompute.TokenProvider.Goth,
GcpCompute.TokenProvider.Static
],
Data: [
GcpCompute.Instance,
GcpCompute.NetworkInterface,
GcpCompute.Disk,
GcpCompute.Scheduling,
GcpCompute.Operation,
GcpCompute.Error,
GcpCompute.Util
],
Telemetry: [GcpCompute.Telemetry]
]
]
end
end