camunda-community-hub / community-action-maven-release

Opinionated GitHub action to release community projects to Maven Central
Apache License 2.0
7 stars 4 forks source link

Switch HUB releases to reusable workflows #51

Open zambrovski opened 1 year ago

zambrovski commented 1 year ago

Hi folks,

instead of providing a single action with all its limitation, Camunda Community HUB should provide a set of reusable workflows to be used by the community.

Here is an article comparing those two approaches: https://dev.to/n3wt0n/composite-actions-vs-reusable-workflows-what-is-the-difference-github-actions-11kd

In fact what we are doing in this action is not an action but a release workflow. Funny, but this subject is very related to process orchestration in an engine versus building a single composite function.

I see a lot of advantages in switching to reusable workflows. The build becomes more clear and we could provide a set of additional workflows to leverage the software quality without complex build pipelines for the community members. Especially, we could include tasks for code quality analysis and other nice features by providing a set of building blocks for community extensions.

If you decide to do so, I would be happy to create those.

What do you think?

Cheers,

Simon

berndruecker commented 1 year ago

Hi @zambrovski: I agree - let's do a proper release of the parent and action first - but I am supportive to make a reusable workflow for the typical Maven build (which is pretty common on the Community Hub I think).

So we would keep the action itself, but add the reusable workflow around it (which is close to https://github.com/camunda-community-hub/community-hub-extension-example/blob/main/.github/workflows/deploy.yml) - right?

zambrovski commented 1 year ago

I think the answer is "almost". Currently the action provides the "release action" functionality, which is in fact a composite of different steps. The steps on their own are not very custom - these are standard calls of Maven (highly parameterized with additional parameters). So what you are trying to achieve with it are several things:

I think all of this is better achieved by a reusable workflow instead of action.

As said earlier, if you don't have strong vote against it, let me provide an example for it and we can discuss the result.

berndruecker commented 1 year ago

I am not against it - I am just a bit worried of too much change/maintenance effort for existing community extensions that use the action.

zambrovski commented 1 year ago

This will be definitely a Major release - and the hope is that we would resolve issues of people by that.