Skip to content

Build, sign, and publish release binaries #82

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

Merged
merged 1 commit into from
Sep 24, 2021
Merged

Conversation

lgarron
Copy link
Contributor

@lgarron lgarron commented Sep 23, 2021

a.k.a. "Sign the smimesign" 😃

This PR adds a workflow to build releases:

  • The builds are signed on Windows.
  • The builds are organized into a build folder, to make things easier to understand and debug.
  • The build folder is uploaded as artifacts on Actions, in one collective build.zip.
  • If a tag was pushed, the build release files are individually uploaded as assets to the releases page:
    • Compare to smimesign@v0.0.13 and note that I've managed to keep fairly similar names and formats (e.g. .tgz for macOS).
  • Tags starting with v are automatically marked as releases, so the latest release will always show up on the side of https://github.com/github/smimesign (if your window is wide enough).
  • The version string is consistently embedded using -ldflags for all builds. I've directly checked that this works, using smimesign --version on amd64, the installer, and macOS.
  • We now build using Go 1.17.

This PR does not add code signing for macOS, and doesn't add a build for Apple Silicon. We recommend using Homebrew to install smimesign on macOS, which works the same without signing and already builds for Apple Silicon.

@lgarron lgarron force-pushed the build-and-sign-releases branch from ff7217a to 1dc9ca0 Compare September 24, 2021 18:29
This PR adds a workflow to build releases:

- The builds are signed on Windows.
- The builds are organized into a `build` folder, to make things easier to understand and debug.
- The `build` folder is uploaded as artifacts on Actions, in one collective `build.zip`.
- If a tag was pushed, the build release files are individually uploaded as assets to the releases page:
  - Compare [`smimesign-staging@v1.1.0-rc1`](https://github.com/github/smimesign-staging/releases/tag/v1.1.0-rc1) to [`smimesign@v0.0.13`](https://github.com/github/smimesign/releases/tag/v0.0.13) and note that I've managed to keep fairly similar names and formats (e.g. `.tgz` for macOS).
- Tags starting with `v` are automatically marked as releases, so the latest release will always show up on the side of https://github.com/github/smimesign (if your window is wide enough).
- The version string is consistently embedded using `-ldflags` for all builds. I've directly checked that this works, using `smimesign --version` on amd64, the installer, and macOS.
- We now build using Go 1.17.

This PR does not add code signing for macOS, and doesn't add a build for Apple Silicon. We [recommend using Homebrew](https://github.com/github/smimesign#macos) to install `smimesign` on macOS, which works the same without signing and already builds for Apple Silicon.
@lgarron lgarron force-pushed the build-and-sign-releases branch from 1dc9ca0 to c6ad9bc Compare September 24, 2021 20:04
@lgarron lgarron merged commit bb0e51c into main Sep 24, 2021
@lgarron lgarron deleted the build-and-sign-releases branch September 24, 2021 20:06
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