jupyter-naas / naas-python

GNU Affero General Public License v3.0
1 stars 0 forks source link

As a dev, I need to create function to generate Github CI/CD workflow #8

Open Dr0p42 opened 1 year ago

Dr0p42 commented 1 year ago

Implement Github CI/CD Workflow for Naas space

This issue aims to implement a Github CI/CD workflow generator for a Naas space. The workflow will be triggered when a new release/tag is created and managed by the semantic-release process.

Specifications

GPT4 - Helpers

Creating a Github CI/CD workflow that will be triggered on new tags

To create a Github CI/CD workflow that is triggered on new tags, include the following in your workflow YAML file:

on:
  push:
    tags:
      - '*'

This will ensure the workflow is only triggered on new tags, and not on every push to the repository.

Using Jinja2 with Python to template a file

Jinja2 is a popular templating engine for Python. To use Jinja2 to template a file, follow these steps:

  1. Install Jinja2: pip install jinja2
  2. Create a template file (e.g., template.j2) with placeholders for variable values, using the double curly brace syntax: {{ variable_name }}
  3. In your Python script, import Jinja2 and load the template file:
from jinja2 import Environment, FileSystemLoader

env = Environment(loader=FileSystemLoader('.'))
template = env.get_template('template.j2')
  1. Render the template with the desired variable values:
rendered_template = template.render(variable_name=value)
  1. Save the rendered template to a new file:
with open('output_file.yaml', 'w') as output_file:
    output_file.write(rendered_template)

Replace output_file.yaml with the desired output file name, and ensure the variable names in the template match the variables passed to the render() function.

Estimate: 1 Priority: Medium

Dr0p42 commented 1 year ago

I will detailed this one a bit more @viniciusdc