Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Bundle Octo.exe with Octoposh #183
See approach -> #183 (comment)
This was introduced in
The idea of Octoposh being a PS module for Octopus that doesn't give you a way to start a deployment makes me sad. With that idea in mind, the obvious thought was "Hey I should totally create cmdlets to create releases/deployments using the API" so I created #100.
As soon as I started planning those cmdlets in my head, I realized I was basically re-writing Octo.exe in Powershell, which doesn't make a lot of sense. The Octopus team has put a lot of effort into
The 2nd idea that came to my mind was "Lets bundle Octo.exe with Octoposh". Of course, just bundling a fixed version of
So the current plan is
Would love to hear your thoughts about this.
At the moment I am using OctoPosh to replace my current common library that I had created last year. Your code has pretty much replaced all function except for one:
Obviously the above function has some assumptions like the Release is already created.. etc.
I don't know as much about the inner workings of Octopus binaries as you of course, but I am uncertain how calling the REST API would be considered re-writing
I am a bit on the fence between PowerShell functions calling an executable or just calling REST APIs and dealing with the objects via PowerShell. Its up to you how "pure" you want to the scripting to be. My previous approach was pretty much 100% powershell scripts and only calling executable when there was no other options. I could be persuaded if calling the executable is a more viable option! :)
My thoughts at the moment anyway. Keep up the great work!
That functions definitely gets the job done, but like you very well mentioned @mattcorr , it relies on too many assumptions and offers very little flexibility.
Octo.exe does things like:
All of these are features I'd like to introduce to Octoposh to make it the
Why do they keep building on the .exe when they could work with you to
Just like @matt-richardson said, the DLLs that
@beaudryj for the moment that's not in our plans. Octoposh is still a project I maintain in my free time. But who knows? Perhaps the module becomes amazingly popular one day and we might consider making it a bit more official :)
Why not just make a flag and give the option or it does a check to see what's installed and use whatever is installed, if neither prompt to install…
On Sun, Mar 26, 2017 at 1:07 PM Dalmiro ***@***.***> wrote: Hi @mud5150 <https://github.com/mud5150> . I'm currently working on a prototype that downloads Octo.exe using Nuget or Chocolatey (still haven't decided whcih I'm gonna use). I'm planning on shipping the first version with 0.6.2/1.0.0-Beta2 — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#183 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/ACgvXLbSdpD9qM0MnDiaQCGCj5RM84Sqks5rpptGgaJpZM4InCg5> .
Hi @beaudryj I'm currently working in a model that goes a bit like this:
The entire point of the cmdlets and variables below is for the user to have a simple and stress-free way to execute
Octoposh would introduce 2 new environment variables and a couple new cmdlets:
Would love to hear some thoughts on this.
Edit + disclaimer: I know that having a cmdlet just to get/set environment variables may sound like too much. But this sort of hand holding is a bit of a standard in Powershell and tbh I don't mind adding them. Its the same story with
It also makes the overall usage discovery a lot simpler rather than forcing users to know about these environment variables before hand and making them set them on their own. Yo can still be a haxxor and set them manually without the get/set cmdlets if you want.
@beaudryj actually it wan't in my plans to do that that. All the module will do is:
& $env:OctoExe create-release --server http://server.com --apikey API-1234567 --Project MyProject
Creating cmdlets to wrap around
I guess I could add something like:
Invoke-OctoExe -parameters "create-release --server http://server.com --apikey API-1234567 --Project MyProject"
It wouldn't do anything more than invoking
New user downloads Octoposh -> Runs
How does that sound?
changed the title from
Bundle Octo.exe with the module
Bundle Octo.exe with Octoposh
Mar 28, 2017
I'm liking where you are going with this. I'm partial to Chocolatey as the Octo.exe distribution method (just love the easy package management and ability to create your own if the gallery doesn't meet your needs), and at one point they were syncing some of the Nuget gallery over as a service to their users, not sure if that is still happening or if a change on the Nuget side broke something. I'm guessing eventually OneGet will work with Nuget or Chocolatey so for Windows 10 (or PowerShell 5.x) and up it will be much easier to install packages no matter the source.
@dragon788 I ended up going with
It should be fairly transparent to the user that way :)
Full walkthrough of the new feature here: http://octoposh.readthedocs.io/en/latest/advancedexamples/running-deployments-with-octoposh/