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.
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
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
- 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)
- GitHub Actions for workflow automation.
- GNU
make
for development operations. - Docker for containerization and testing images.
- Container Structure Tests for validating container images metadata.
- Cookiecutter for project templating.
- Golang as a programming language.
To set up your development environment and learn about contributing to this project, please refer to CONTRIBUTION.md.
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 |