enlivenhq / teamcity-slack

Configurable TeamCity notifier plugin for Slack.
137 stars 51 forks source link

Switch to using GitHub Releases for releasing new zip files #33

Open eljobe opened 7 years ago

eljobe commented 7 years ago

Right now, the result of packaging the plugin locally is a zip file which is then checked into the repository and linked to from the README.md page.

Git isn't really optimized for storing binary blobs like zip files. A better solution would be to attach the resulting zip file a GitHub Release whenever we build a new version of the zip.

The process can be automated, so it wouldn't take much effort to create a new release and update the README.md to point to the binary attached to that release.

cy6erskunk commented 7 years ago

There's a actually build configuration at https://teamcity.jetbrains.com publishing zip as its artifact, one might easily get there by clicking TeamCity build status shield/badge at the main page of this repo, but it is indeed not easily discoverable

eljobe commented 7 years ago

@cy6erskunk that's cool. I bet that build could also be updated to have a "Release" task which would run in an ad-hoc fashion, commit a release tag to git and publish the zip back to a GitHub release matching that tag.

By the way, how did you get this project added to the JetBrains Continuous Integration for ThirdParty Plugins? Is there an application process, or does someone on the team also work for JetBrains?

cy6erskunk commented 7 years ago

@eljobe gotta think about it - it is not as simple as adding another build step.

There's no special application process, one needs to contact TeamCity team. In case of slack plugin it just happened on its own, because I am from TeamCity team.

eljobe commented 7 years ago

Sorry. Didn't mean to trivialize the effort that would be involved in automating the publication of a release to GitHub. I'd be happy to pitch in and add the automation in the form of a Gradle task which could be run either as an ad hoc build on TeamCity, or at the command-line passing in appropriate parameters for GitHub authentication for the project.

Either way, I really think we should avoid checking the latest zip file into the git repo and just linking to it from the README.md file. The repository should just hold the sources and the scripts needed to turn those sources into the artifacts. Not the artifacts themselves. It causes spurious diffs during development.

aclark09 commented 7 years ago

I've switched to using GitHub releases, and changed the readme to link to the release zip file, so we'll at least have that.