Skip to content
This repository has been archived by the owner on Jun 25, 2020. It is now read-only.

update binary download #170

Closed
markvantilburg opened this issue Jun 25, 2014 · 38 comments
Closed

update binary download #170

markvantilburg opened this issue Jun 25, 2014 · 38 comments

Comments

@markvantilburg
Copy link
Contributor

https://github.com/Code52/pretzel/downloads

The download over there seems to be outdated compared to the master.

@shiftkey
Copy link
Member

Downloads has been obsoleted and replaed with Releases: https://github.com/blog/1547-release-your-software

But we don't use either at the moment. You can grab the latest bits from @JakeGinnivan's TeamCity server: http://teamcity.ginnivan.net/viewLog.html?buildId=5864&tab=artifacts&buildTypeId=bt52

I'll leave this open to see if we can't get proper releases documented and linked back on the site.

@markvantilburg
Copy link
Contributor Author

The teamcity link above is not a public link.

Also his wiki page should be updated to link to the latest location:
https://github.com/Code52/pretzel/wiki/Installing-Pretzel

@JakeGinnivan
Copy link
Member

@markvantilburg just click the 'Login as guest' button

@shiftkey
Copy link
Member

The teamcity link above is not a public link

Oops, fixed: http://teamcity.ginnivan.net/viewLog.html?buildId=5864&tab=artifacts&buildTypeId=bt52&guest=1

@JakeGinnivan
Copy link
Member

But @shiftkey is right, we should fix the release. I think its at http://chocolatey.org/packages/pretzel too

@markvantilburg
Copy link
Contributor Author

How about pushing a new version to chocolatey. The version there is outdated and even displays a security notice - might scare some people :)

@shiftkey
Copy link
Member

I don't have rights to publish a new package - can you add me @JakeGinnivan or can I leave this with you?

@JakeGinnivan
Copy link
Member

Pushed new package and added you as a maintainer @shiftkey

@shiftkey
Copy link
Member

Thanks @JakeGinnivan

@ricardopolo
Copy link

Would be great i fo use a CI server (like TeamCitiy or Appveyor) to create a new compiled version with every commit to master. Then automatically push the artifacts (compiled) to Github Releases http://www.appveyor.com/docs/deployment/github and Chocolatey

@shiftkey
Copy link
Member

@laedit has been doing some improvements to the CI process (see #190 for example) - I've not seen anyone integrate GH Releases into an official TeamCity plugin though (prove me wrong!)

@ricardopolo
Copy link

@shiftkey @laedit If you want I can help with the CI process and pushing the artifacts using Appveyor (I dont have experience with TeamCity). I have worked in some projects where we compile a new Nuget version (for chocolatey in this case) with every commit

@laedit
Copy link
Member

laedit commented Jan 19, 2015

Since it was the build & deploy tool in place when I arrived I'd prefer to use Team City, but it doesn't play well with GitHub so I think to switch to AppVeyor.
@ricardopolo The aim here would be to tag the source, upload the binaries to GitHub and generate and push the package to Chocolatey. The last two are handled by AppVeyor but I think the first isn't. In any case you are welcome if you have any examples 😄

@JakeGinnivan
Copy link
Member

Not sure if this is helpful for you guys https://github.com/dazinator/GithubReleaseCreator

@laedit
Copy link
Member

laedit commented Jan 19, 2015

Thanks but this part is handled directly by AppVeyor: http://www.appveyor.com/docs/deployment/github
But it require a tag on GitHub source that isn't handled.
I think that the new deploy workflow could be:

  1. Tag the source manually on GitHub
  2. AppVeyor will build & deploy to the newly created GitHub release and to Chocolatey

An alternative could be to call the GitHub API to create a release but I prefer a manual action to launch the deploy.
@shiftkey @JakeGinnivan What do you think?

@shiftkey
Copy link
Member

What about deploying to Chocolatey? It's basically a NuGet feed and NuGet package, could we trick this into deploying a built package?

@laedit
Copy link
Member

laedit commented Jan 19, 2015

The Nuget Deployment Provider on AppVeyor does not let us define the source server, but we can invoke nuget directly: nuget push <package>.nupkg <api key> -source http://chocolatey.org

EDIT: I was wrong, it is in fact possible to specify the server URL 😄

@laedit
Copy link
Member

laedit commented Jan 19, 2015

@shiftkey I am trying to add code coverage to the AppVeyor build with coveralls.io but only the admin of the GitHub repo can have access to the repo token.
Can you go to https://coveralls.io/r/Code52/pretzel, sign in with GitHub, get the repo token and after go to https://ci.appveyor.com/tools/encrypt, encrypt the token and add it as environment variable on https://ci.appveyor.com/project/laedit/pretzel/settings/environment?
Sorry, it's complicated but I can't do it myself.

@laedit
Copy link
Member

laedit commented Jan 21, 2015

About the chocolateyInstall.ps1 script, is there a reason that the package installs in c:\tools and not in the lib folder of chocolatey?

@laedit
Copy link
Member

laedit commented Jan 22, 2015

@shiftkey, @JakeGinnivan If that's ok with you I will update the chocolateyInstall to install Pretzel in the chocolatey/lib folder like the other package and uninstall the previous version/path of pretzel.
Also I am updating the build process for the GitHub / chocolatey release, I have all what I need for GitHub but I don't have access to the chocolatey package. Is it possible to have a key or the rights to push the package?
Thanks 😃

@JakeGinnivan
Copy link
Member

Yep, just email me jake at Ginnivan dot net with your Chocolatey username and I'll sort that out

Sent from my Windows Phone


From: Jérémie Bertrandmailto:[email protected]
Sent: ý22/ý01/ý2015 18:19
To: Code52/pretzelmailto:[email protected]
Cc: Jake Ginnivanmailto:[email protected]
Subject: Re: [pretzel] update binary download (#170)

@Shiftkeyhttps://github.com/Shiftkey, @JakeGinnivanhttps://github.com/JakeGinnivan If that's ok with you I will update the chocolateyInstall to install Pretzel in the chocolatey/lib folder like the other package and uninstall the previous version/path of pretzel.
Also I am updating the build process for the GitHub / chocolatey release, I have all what I need for GitHub but I don't have access to the chocolatey package. Is it possible to have a key or the rights to push the package?
Thanks [:smiley:]


Reply to this email directly or view it on GitHubhttps://github.com//issues/170#issuecomment-71069733.

@laedit
Copy link
Member

laedit commented Jan 23, 2015

Thanks!

@markvantilburg
Copy link
Contributor Author

i downloaded this from chocolatey:
pretzel.0.1.0.165.nupkg

pretzel.0.1.0.165\tools\chocolateyInstall.ps1
Points to
http://deploy.code52.org/pretzel/release/Pretzel-v0.1.0.165.zip
But that is a 404

@laedit
Copy link
Member

laedit commented Jan 25, 2015

Yes, the package haven't been updated yet.
But the zip is now included in the artifacts of the build: https://ci.appveyor.com/project/laedit/pretzel/build/artifacts

@JakeGinnivan
Copy link
Member

Probably worth pushing a new release so the chocolatey package is not broken?

@laedit
Copy link
Member

laedit commented Jan 25, 2015

I was planning to do that today.
Are you ok with the package will install Pretzel in the chocolatey/lib folder like the other package and uninstall the previous version/path of pretzel?

@JakeGinnivan
Copy link
Member

Yep, that sounds good

@laedit
Copy link
Member

laedit commented Jan 25, 2015

Ok, that was a little bit laborious but it is done! 😃
The new release process is:

  • Change version in appveyor.yml if necessary
  • Create a new tag
  • Push the newly created tag
  • Enjoy (and optionally watch the build & deploy on AppVeyor)

If you prefer another process just let me know.

@laedit laedit closed this as completed Jan 25, 2015
@JakeGinnivan
Copy link
Member

Up to you, but I tend to use https://github.com/ParticularLabs/GitVersion for versioning.

So the builds will constantly build the next version to deploy. Then the deploy process is

  • Push artifacts
  • Tag with the build version

Then GitVersion sees the tag and the version is automatically bumped. http://jake.ginnivan.net/blog/2014/07/09/my-typical-teamcity-build-setup/ talks a bit about the idea.

Happy with whatever you choose though

@laedit
Copy link
Member

laedit commented Jan 25, 2015

Yes, I already read your article which is great by the way.
You are right, for the release process all is already taken care of by AppVeyor except for the number version.
I am thinking to integrate it in the process, I will try it for the next release.
But right now it doesn't work great with PowerShell ConvertFrom-Json, I will look into that.
And I have forgot in my previous message but it's only possible to change the version number used by AppVeyor as build name through appveyor.yml so we face the risk that the build name and version are not related.

@JakeGinnivan
Copy link
Member

pretty sure @gep13 has sorted the appveyor support with GitVersion story. He can probably point you at the scripts chocolatey uses with GitVersion

@laedit
Copy link
Member

laedit commented Jan 25, 2015

Thanks for the tip.

@gep13
Copy link

gep13 commented Jan 25, 2015

@laedit @JakeGinnivan just wanted to chime in here...

Yes, ChocolateyGUI makes use of GitVersion to get the current version number, based on the state of the repository. GitVersion has out of the box support for AppVeyor, and it allows the setting of the current build number, as well as setting environment variables that can be consumed in other parts of your build process.

For ChocolateyGUI, we call GitVersion here:

https://github.com/chocolatey/ChocolateyGUI/blob/develop/BuildScripts/default.ps1#L375

Which sets the Build Number so AppVeyor correctly reports it in the Web Interface, and also updates the applications AssemblyInfo.cs files, and then here:

https://github.com/chocolatey/ChocolateyGUI/blob/develop/BuildScripts/default.ps1#L376

We immediately set a script level variable to the value of the generated Environment Variable by GitVersion, that is then used when packaging the associated Chocolatey Package.

We tend to do the latter in the build script, rather than relying on any specific features of AppVeyor, that way, if we needed to, it would be a small change to move to another CI platform.

Hope that helps! If you have any questions, feel free to ask.

@gep13
Copy link

gep13 commented Jan 25, 2015

How about pushing a new version to chocolatey. The version there is outdated and even displays a security notice - might scare some people :)

This is/was part of the moderation process that was recently added to Chocolatey.org. We are trying to improve the overall quality of packages by ensuring that all packages go through (at the minute) a manual moderation process. This is hoping to be replaced with an automated approval process.

For more information on the moderation process, you can see the blog post here:

http://codebetter.com/robreynolds/2014/10/27/chocolatey-now-has-package-moderation/

@gep13
Copy link

gep13 commented Jan 25, 2015

I have worked in some projects where we compile a new Nuget version (for chocolatey in this case) with every commit

Just a small note on this...

If this is something that happens with Pretzel, or other packages that target Chocolatey.org, you might run into some issues. When a packages hit the moderation queue, it isn't immediately available, instead, we wait and make sure that there aren't any issues with the package version. If there are issues, we will ask you to fix them, and then push the same package version again. If your CI process creates a new package version number each commit, then this will likely run into issues.

@ricardopolo
Copy link

@gep13 INMO that a package does not have any issue is reposanbility of the creator or the software no of Chocolatey. So I would allow creationg in the CI process and not a human validation by Chocolatey. It is not its responsability

@gep13
Copy link

gep13 commented Jan 25, 2015

@ricardopolo Since chocolatey.org is a public facing repository of packages, the Chocolatey Team does have a level of responsibility to ensure that all packages there are what they say they are, and are maintained at a level of quality, so that the end user knows what they are getting.

@laedit
Copy link
Member

laedit commented Jan 26, 2015

@gep13 Thanks a lot for the tips! 😃
I will study your build script and make some changes to our AppVeyor build.

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

No branches or pull requests

6 participants