Akd v0.3.0 Akd.Mix.Task View Source

This module defines a __using__ macro which allows another module to behave like an Akd.Mix.Task and define functions which allow us to define a series of operations on a Deployment struct and execute those operations in an organized manner.

This also comes with the access to Akd.Pipeline and Akd.FormHook DSLs.

If you would like to get started use Akd.Mix.Gen.Task to generate a quick deploy task and you can start with that and edit it

Usage:

  defmodule Mix.Tasks.Deploy do
    use Akd.Mix.Task

    pipeline :fetch do
      hook Akd.Fetcher.Scp
    end

    pipeline :init do
      hook Akd.Initer.Distillery
    end

    pipeline :build do
      hook Akd.Builder.Distillery
    end

    pipeline :publish do
      hook Akd.Start.Distillery
      hook Akd.Publisher.Distillery
      hook Akd.Stop.Distillery
    end

    pipeline :deploy do
      pipe_through :fetch
      pipe_through :init
      pipe_through :build
      pipe_through :publish
    end

    def run(_argv) do
      execute :deploy, with: some_params
    end
  end

Link to this section Summary

Functions

This macro allows another module to behave like Akd.Mix.Task. This also allows a module to use Akd.Dsl.FormHook and Akd.Dsl.Pipeline to write a task using Akd.Hooks in a readable and reusable way

Link to this section Functions

Link to this macro

__using__(opts) View Source (macro)

This macro allows another module to behave like Akd.Mix.Task. This also allows a module to use Akd.Dsl.FormHook and Akd.Dsl.Pipeline to write a task using Akd.Hooks in a readable and reusable way.

This task allows us to interact with complex features of Akd.DeployHelper in a very simple way.