Pipeline UI is a visual editor for creating and managing GitHub Actions workflows. Built with SolidStart, this tool simplifies the process of defining GitHub pipelines by allowing users to visually editing and update workflows. It automatically generates and updates the YAML configuration files, ensuring seamless integration with GitHub.

infoInfo

This project has been made for SolidHack 2024 entry. Although there may be alternative solutions that can help writing workflow files directly from IDE, a core principle to this work was discovering new technologies and apply them for a POC.

The amount of time dedicated is very limited (around ~3 weekends, starting from 1st of October), and the features needed for a complete project are numerous. Therefore, some features will undoubtedly be missing and may be implemented in the future.

Since October is the hacktoberfest month, this project use Appwrite Cloud (Free tier) to partecipate also in Appwrite’s Hacktoberfest 2024 Hackathon.


GitHub Workflow Supported Features

Check all supported features


🤖 Technical info

PipelineUI is entirely built with Solid and SolidStart with enabled SSR.

The core features of this project can be summarized in a few points:

A brief introduction with a list of some core external dependencies that should be listed here for the awesome work.

User interface

The user interface has been built with:

warningWarning

The source code of @vanilla-extract/vite-plugin has been patched in order to support solid start w/ vinxi for multi-environment ssr/csr build.

Patch file

Custom app config


YAML Editor

warningWarning

The source code of @actions/workflow-parser has been patched and rebuilt in order to work on vite in node/browser environment without getting errors and to extend some functionalities needed to the workflow yaml parser and lsp that were not available before.

Currently @actions/languageserver has been wrapped to ship only browser compatible packages with the built-in workflow-parser patch.

Read more about this in the package README.

MIT License

My patch file


Flow diagram

The implemented Flow diagram is very limited and it has been built with solid taking advantage of some other dependencies:


Backend

Backend has been built with appwrite, which has been wrapped via solid server functions to provide authentication and the database persistence.

Used Appwrite features:

Most of the code is available into packages/app/lib.


Other dependencies

This projects also uses some of mine older dependencies that were used to speed up the development. These have also been updated to fix the bugs encountered.


Hosting

This application is hosted on Railway. Deploy are made via github action CI/CD