DEV Community

Nuno "Omega Leo" Diogo
Nuno "Omega Leo" Diogo

Posted on

UnityFlow - Automated Workflow for Unity Projects

What I built

A repository with code and actions that can be useful for C# projects and also Unity projects.

Category Submission:

maintainer must-haves

App Link

https://github.com/omegaleo/UnityFlow

Screenshots

N/A

Description

My entry takes an approach to the category of maintainer must-haves where my goal is to do a set of tools/template repo to help devs deploy and keep their documentation and changelogs up-to-date, it'll mostly be for C# developers and consists of the following:

  • auto-tag: C# project that will be called whenever an issue is created/updated and will properly tag the issue depending on what is written in the title/description. Example: If I write @feature in the description, once the workflow is called it'll tag that issue with the feature tag.
  • changelog-generator: C# project that will be in charge of updating the changelog.md and also changes for the release whenever one is generated. Say for example, if I made a release with the tag v1.0.0, it'll call the workflow, get me all the commit messages since the last release that match a filter, update the release's description with those commit messages and also add the lines for it in the changelog.md
  • documentation-helper: C# Project that will handle the automatic generation of documentation and is divided into 2 components:
    • Library: For now only has the DocumentationAttribute(used to mark methods/properties/classes for documentation, see image below for example) and DocumentationHelper, a static class that will go through all assemblies in the project and check for the DocumentationAttribute and return in a DocumentationStructure list that will be used to show the documentation;

Documentarion

  • DocumentationGenerator: Simple script that will be called manually from the Actions menu and that will update the documentation.md using the DocumentationHelper described above.

Link to Source Code

https://github.com/omegaleo/UnityFlow

Permissive License

MIT

Background (What made you decide to build this particular app? What inspired you?)

Well, as a Unity Dev for the last 5 years I've always wondered what sort of tools would help me greatly improve my workflow and so with that in mind I started developing this repo.

How I built it (How did you utilize GitHub Actions or GitHub Codespaces? Did you learn something new along the way? Pick up a new skill?)

I have actions set up for the following:

  • When a new issue/pull request is created: Call the auto-tag project and tag the issue/pull request
  • When a new release is created: Call the changelog-generator project and write a list of changes compared to the previous release based on commit descriptions
  • Manually: Call the documentation-helper project to write documentation for the projects that have the library added to.

Additional Resources/Info

N/A

Top comments (0)