Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to Deploy git origin/master, merged/closed PR to server Enterprise Repo. #32

Open
MatthewAlanCrouch opened this issue Apr 24, 2019 · 7 comments

Comments

@MatthewAlanCrouch
Copy link

Currently Deploys to a remote Enterprise Repository require a 3rd party service listening for PRs or manually uploading files via User Console. Neither are necessarily very friendly to set up or maintain.

Pentaho (PDI) can itself get Deploy content using GitHub API's and upload to the Enterprise Repository with Pentaho Repository API's (our current preferred solution, along with GitHub Actions-Workflows). Adding this ability to Deploy a merged PR from spoongit would be a huge improvement on workflow efficiency

@HiromuHota
Copy link
Owner

Thanks for a feature request.
In summary,

  1. You use GitHub (or alternatives) as a remote git repository, say origin, and use SpoonGit to push a branch feature/1 to this remote git repository.
  2. You use GitHub (or altenatives)'s web UI to create a PR (e.g., origin/feature/1 -> origin/master), make comments on it, merge/close it.
  3. You deploy all files in origin/master to a Pentaho Enterprise Repository currently using a 3rd party service or manual upload via Pentaho User Console.

You want SpoonGit to be able to do the deployment step.

I think you'd be just fine if SpoonGit can deploy a branch (e.g., origin/master) instead of a merged PR because this PR is already merged to a branch like origin/master.
Correct me if I'm mistaken.

@MatthewAlanCrouch
Copy link
Author

MatthewAlanCrouch commented Apr 25, 2019 via email

@HiromuHota
Copy link
Owner

I like the following idea

your local repo, the GitHub master (origin/master), and the remote Enterprise repo that the production server accesses all stays in sync.

but 1. it would be difficult to implement it and 2. it may not be appropriate to implement this feature in SpoonGit from architectural point of view.

  1. It'd be difficult to implement it

As you admitted it, your Pentaho job "still requires some manual intervention."
I'd imagine that this Pentaho job assumes that nobody else but himself manipulates the Pentaho (Enterprise) Repository since the last sync, but when some unexpected things happen (e.g., somebody else manipulates the Repository) manual interventions are required.
In order for this Pentaho job, or 3rd party script or whatever, to upload only the files modified/added/deleted by the last commit (could be trigger by a PR) without any need of manual intervention, he first has to figure out the status of the Pentaho Repository in the way that git does, which I don't think is straightforward.

One simple way of syncing I could imagine is to delete all files from the Pentaho Repository, no matter what status it is, and upload all files from the git repository.
This is simple, reliable, but not efficient (especially when you have many files to upload).

  1. it may not be appropriate to implement this feature in SpoonGit from architectural point of view

I think this kind of sync would better be triggered by GitHub and executed by a server (instead of by a client like Spoon/SpoonGit).
If this feature is implemented in SpoonGit, you still have to manually launch Spoon (and clicks "sync" button, depending on how it is implemented).

Please let me know if you have a different thought.

@MatthewAlanCrouch
Copy link
Author

MatthewAlanCrouch commented Apr 26, 2019 via email

@HiromuHota
Copy link
Owner

I'd implement this in a way that this can be executed in CLI instead of GUI.
This could be an extension of this plugin,,, but wait, have you tried IvyGS - Ivy Git Sync?
It says

IvyGS - Ivy Git Sysnc is a Sparkl plugin for help sinchronizer your BI solution that is storage on a git repository with Pentaho BI Server.

It is available on Pentaho Marketplace and can be installed to Pentaho Server, which sounds a perfect solution for your need.

@HiromuHota
Copy link
Owner

@latinojoel any thoughts?

@latinojoel
Copy link

Hi all,

IvyGS was developed a while back and the concept was proved by using this git PDI plugins: https://github.com/ivylabs/ivy-pdi-git-steps
As this is built as a Sparkl plugin, it can be treated as a bootstrap tool to be adapted to the developer needs. It is possible to change the whole UI in CDE e and the backend in PDI.

Tagging @harrisward and @ivyis as they may be interested in that.
Joel

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants