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

GoReleaser build and release support v2 #150

Closed
wants to merge 2 commits into from
Closed

GoReleaser build and release support v2 #150

wants to merge 2 commits into from

Conversation

karlskewes
Copy link
Contributor

@karlskewes karlskewes commented Mar 14, 2019

Simplified build (and release?) per #134.
Not automatically hooked into Travis (yet).

Binaries tested with --version:

  • linux (docker images as well)
  • windows

Binaries not tested:

  • darwin (don't have mac)

Build and Publish tested:

  • Create GitHub Token
  • git commit
  • git tag v0.80 && git push
  • make publish
  • single archive per platform contains both controller and kubeseal binaries, plus kubernetes yaml's
  • locally docker images are created

Not Tested:

  • docker image push

Build fork/dirty/etc: (assuming merged, patch on upstream)

make snapshot

This results in binaries, archives and docker images tagged with full git commit hash.

To Do:

  • TODO: comment added for brew to change to published formula
  • confirm ok publishing archive instead of binaries
  • yamls added to archive
  • DOCS update and simplification
  • At a future time remove references to v0.7.0 installation processes

@@ -57,9 +59,10 @@ controller.image: docker/Dockerfile docker/controller
$(KUBECFG) show -V CONTROLLER_IMAGE=$(CONTROLLER_IMAGE) -o yaml $< > $@.tmp
mv $@.tmp $@

controller.yaml: controller.jsonnet controller.image controller-norbac.jsonnet
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

controller.image target breaks GoReleaser.
Remove from here but add to .travis.yml to make up for it.

Simplified build (and release?) per #134.
Not automatically hooked into Travis (yet).

**Binaries tested with `--version`:**
- linux (docker images as well)
- windows

**Binaries not tested:**
- darwin (don't have mac)

**Build and Publish tested:**
- Create [GitHub Token](https://goreleaser.com/environment/)
- In `.goreleaser.yml` comment out `release.disable: true`
- `git commit`
- `git tag v0.7.1 && git push`
- `make publish`
- single archive per platform contains both `controller` and `kubeseal` binaries, plus kubernetes yaml's
- locally docker images are created

**Not Tested:**
- docker image push

**Build fork/dirty/etc:** (assuming merged, patch on upstream or blog link below)
```
make snapshot
```
This results in binaries, archives and docker images tagged with full git commit hash.

**To Do:**
- [x] TODO: comment added for brew to change to [published formula](https://github.com/Homebrew/homebrew-core/blob/master/Formula/kubeseal.rb)
- [x] confirm ok publishing archive instead of binaries
- [x] yamls added to archive
- [x] DOCS update and simplification
- At a future time remove references to v0.70
@karlskewes
Copy link
Contributor Author

Goreleaser now supports multiple archives and specifying which build artifact(s) go into which archive(s).

In our .goreleaser.yml we have 2 builds - kubeseal and controller.
So we can now create one archive and include kubesealonly per your comment on previous PR.
Happy to amend this if still desirable. Can wait on outcome of repo discussion too.

Docs: https://goreleaser.com/customization/#Archive

@karlskewes
Copy link
Contributor Author

karlskewes commented Jul 8, 2019

Changed archive to only include kubeseal binary.
controller is built as docker image.
Example make publish: https://github.com/kskewes/sealed-secrets/releases/tag/v0.7.2

Can update README.md if/when this is to be merged, no point rebasing docs constantly.

@karlskewes
Copy link
Contributor Author

I see that a Windows build has been added to Travis now and available in the latest Release Candidate. Good stuff.
The other reason for using GoReleaser was to simplify release process and do more of them. Perhaps this no longer applies?
If so, feel free to close this PR, no worries or pressure (to decide) either way.

@mkmik
Copy link
Collaborator

mkmik commented Jul 22, 2019

I created the release manually. It's relatively easy to cross-compile Go. That said, I'd love to have some automation.
However I didn't want this to be a blocker for the v0.8.0 release. I'll get back to this right after it

@mkmik mkmik added this to the v0.9.0 milestone Jul 22, 2019
@karlskewes
Copy link
Contributor Author

Indeed, same with GOARCH huh.
All great, no rush, thanks for everything.

@mkmik mkmik modified the milestones: v0.9.0, v0.10.0 Sep 2, 2019
@karlskewes
Copy link
Contributor Author

Let's revisit if required later.

@karlskewes karlskewes closed this Nov 10, 2019
@mkmik mkmik modified the milestones: v0.10.0, v0.11.0 Mar 2, 2020
@mkmik mkmik removed this from the v0.11.0 milestone Mar 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants