Packages
gcp_compute
0.2.0
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
Current section
Files
gcp_compute
mix.exs
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