Packages
git_hub_actions
0.3.2
0.4.2
0.4.1
0.4.0
0.3.17
0.3.16
0.3.15
0.3.14
0.3.13
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.27
0.2.26
0.2.25
0.2.24
0.2.23
0.2.22
0.2.21
0.2.20
0.2.19
0.2.18
0.2.17
0.2.16
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
A little tool to write GitHub actions in Elixir
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/gha.ex
defmodule Mix.Tasks.Gha do
@moduledoc """
Creates a GitHub actions file.
See [Usage](/git_hub_actions/usage.html) and
[Defaults](/git_hub_actions/defaults.html) for more information.
## Command line options
- `--config`, `-c` - specifies the config file
- `--elixir`, `-e` - puts the given Elixir verion to the config
- `--output`, `-o` - specifites the output file, defaults to
`.github/workflows/ci.yml`
- `--workflow`, `-w` - specifies the workflow script
"""
@shortdoc "Creates a GitHuba actions yml-file"
use Mix.Task
alias GitHubActions.Config
@defaults [workflow: :default, config: :default, output: :default]
@impl Mix.Task
def run(options) do
{opts, []} =
OptionParser.parse!(options,
strict: [workflow: :string, config: :string, output: :string, elixir: :string],
aliases: [w: :workflow, c: :config, o: :output, e: :elixir]
)
config_elixir_version(opts)
@defaults
|> Keyword.merge(opts)
|> GitHubActions.run()
rescue
error in OptionParser.ParseError ->
Mix.Shell.IO.error(Exception.format(:error, error, []))
exit({:shutdown, 1})
end
defp config_elixir_version(opts) do
if Keyword.has_key?(opts, :elixir) do
version =
opts
|> Keyword.get(:elixir)
|> GitHubActions.Version.parse!()
Config.config(:elixir, version)
end
rescue
_error in GitHubActions.InvalidVersionError ->
Mix.Shell.IO.error("The given Elixir version is invalid.")
exit({:shutdown, 1})
end
end