hedge icon indicating copy to clipboard operation
hedge copied to clipboard

Task refactoring

Open jikuja opened this issue 7 years ago • 1 comments

  • [x] Mark required or optional parameters
    • [x] AWS
    • [x] Azure
  • [x] Hilight importent tasks
    • [x] AWS
    • [x] Azure
  • [x] After #45 is merged use common.core/fail-if-false for missing required task arguments
    • [x] Related task: check required environment variables as soon as possible
  • [x] Design and implement common naming scheme
    • [x] Discuss
    • [x] Design
    • [x] Implement
    • [x] Namespace
    • [x] Rename tasks and use common naming scheme: build, package, deploy stages. New names TBD
      • [x] AWS
      • [x] Azure

jikuja avatar Jan 23 '18 07:01 jikuja

Start of discussion:

How Hedge should support multiple clouds with one build.boot file?

One solution:

(set-env! :source-paths #{"src"}
          :resource-paths #{"resources"}
          :dependencies '
                          [siili/boot-hedge "0.0.4-SNAPSHOT" :scope "test"]
                          [siili/hedge "0.0.4-SNAPSHOT"]
])

(require '[boot-hedge.aws.core :refer :all])
(require '[boot-hedge.azure.core :refer :all])

This requires that all tasks in hedge namespaces are unique. Should we refactor common tasks into common namespace and then rafactor rest of the tasks with cloud-specific postfixes or prefixes?

Other solution:

(require '[boot-hedge.common.core :refer :all])
(init-hedge! :aws :azure)

In this case first command import all common tasks and then init-hedge! import tasks for requested cloud platform. Usability? Feasibility?

jikuja avatar Jan 23 '18 07:01 jikuja