Skip to content

Feature: Declarative way of defining projects, inventories, task templates etc #3109

@laurivosandi

Description

@laurivosandi

Related to

Configuration

Impact

nice to have

Missing Feature

Currently demo project is initalized with Go code

func createDemoProject(projectID int, noneKeyID int, emptyEnvID int, store db.Store) (err error) {

This could be refactored to something that would initialize Semaphore projects from YAML.

We currently have internally developed a tool that initializes BoltDB database with desired contents but we would like to see something universal implemented upstream so it would work for any database backend.

In our internal implementation the tool also shows/hides tasks based on presence of hostname in the inventory and variables defined in inventory's all section

Implementation

Load projects, inventories, repositories, task templates from YAML definition.

Design

Make these items readonly in Semaphore UI. Handle removal of items that are not (anymore) defined in YAML. Make it possible to show/hide tasks based on inventory variables or hosts

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions