jupyter-naas / naas

Low-code Python library to safely use notebooks in production: schedule workflows, generate assets, trigger webhooks, send notifications, build pipelines, manage secrets (Cloud-only)
https://app.naas.ai/
GNU Affero General Public License v3.0
282 stars 25 forks source link

Create function to generate Github CI/CD workflow #391

Closed Dr0p42 closed 1 year ago

Dr0p42 commented 1 year ago

Implement Github CI/CD Workflow for Naas Service

This issue aims to implement a Github CI/CD workflow generator for a Naas service. 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