Skip to content

Create a CLI tool to automate template scaffolding #89

Closed
@erikschlegel

Description

@erikschlegel

A good user story should be (I-N-V-E-S-T principle)

  • Independent (from other user stories, allowing to realize them in any order);
  • Negotiable (omit details that would freeze the story);
  • Valuable (implementation delivers an increment of functionality, observable by and useful to users);
  • Estimable (developers should be able to estimate its size relative to other stories);
  • Sizable (implementation fits in one iteration – if it needs many to complete, it is an EPIC);
  • Testable (user must be able to check the conditions of satisfaction).

Description

*As a developer, I'd like to use a CLI, in order to scaffold a cobalt template and setup my local environment with the test harness, cloud security credentials and template configuration settings.

Acceptance Criteria

Reference: [Done-Done Checklist] (https://github.com/Microsoft/code-with-engineering-playbook/blob/master/Engineering/BestPractices/DoneDone.md)

  • Component diagram outlining the functional boundaries for all CLI scripts and components.
  • Should verify that I can install the CLI on my local machine.
  • The CLI allows me to select the service principal used for terraform deployments
  • My .env is pre-filled by the CLI after selecting my service principal and storage account.
  • All bash scripts are derived from bash wizard.
  • The cli actions include both unit and integration tests.
  • Artifacts required to run the test harness locally are pulled down via the CLI.
  • Terraform varibale and deployment files are auto generated once the target template name is provided.
  • Pre-requisite dependencies are validated via the CLI.

Resources

Technical Design Document
Mockups

Tasks

Stories are intended to be completed in a single sprint; if task breakdown creates addition work then team should discuss promoting the Story to an Epic.
Reference: [Minimal Valuable Slices] (https://github.com/Microsoft/code-with-engineering-playbook/blob/master/Engineering/BestPractices/MinimalSlices.md)

Reference: [How to Write Better Tasks] (http://agilebutpragmatic.blogspot.com/2012/04/splitting-story-into-tasks-how-to-write.html)

Assignee should break down work into tasks here

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions