platform-repo-scaffolder

Repository Scaffolder

Overview

Golang Template Integration Tests VueJS Template Integration Tests

This repository is dedicated to maintaining a collection of project templates in various programming languages and facilitates the creation of new repositories. It plays a crucial role in initial (day-0) repository setup operations.

Sequence of Scaffolding a Repository

sequenceDiagram
    actor DEV as Developer
    participant PRT as Port IDP
    participant RRS as Repository:<br>platform-repo-scaffolder
    participant RNW as New Repository

    DEV ->> PRT: Scaffold a new repository
    PRT ->> RRS: Initiate workflow:<br>repository-scaffolder.yaml
    RRS ->> RRS: Prepare a template<br>using Cookiecutter
    RRS ->> RNW: Create a new repository
    RRS ->> PRT: Add the new entity
Loading

Sequence of Deleting a Repository

sequenceDiagram
    actor DEV as Developer
    participant PRT as Port IDP
    participant RRS as Repository:<br>platform-repo-scaffolder
    participant RTG as Target Repository

    DEV ->> PRT: Delete a repository
    PRT ->> RRS: Initiate workflow:<br>repository-delete.yaml
    RRS ->> RTG: Clone the repository
    activate RTG
    RTG -->>RRS: Get content
    deactivate RTG
    RRS ->> RRS: Backup the repository as an artifact
    RRS ->> RTG: Delete the repository
    RRS ->> PRT: Delete the entity
Loading

Key Functions

  • Maintenance of project source-code templates
  • Verification of functionality for source-code templates
  • Verification of functionality for related template images
  • Automating the setup of new repositories (day-0 operations)

Tech Stack

Development & Contribution

To set up your development environment and learn about contributing to this project, please refer to CONTRIBUTION.md.

Workflows

Name Description
repository-scaffolder.yaml Called by Port IDP, it scaffolds a repository from the templates available (Golang and VueJS)
repository-delete.yaml Called by Port IDP, it backups the repository content to the scaffolder articafts and deletes the repository afterward.
golang-ci.yaml Ensures the Golang template is generated properly by Cookiecutter, the binary is executable by default and serving a HTTP server, and the Docker image is good to go
vuejs-ci.yaml Ensures the VueJS template is generated properly by Cookiecutter, serves the specific content, and the Docker image is functional
Visit original content creator repository https://github.com/PashmakGuru/platform-repo-scaffolder

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *