Skip to content

Create a Release

Obscurely edited this page Dec 15, 2022 · 2 revisions

Steps for publishing a new version, follow in order

Linux

  1. Create a new tag, but make it prerelease (even if it's stable), will change it after we finished the release.
  2. Run the build_linux.groovy jenkinsfile.
  3. Upload the new linux builds to the new release (on github).
  4. Update the AUR with the new Arch PKGBUILDs.
  5. Run the build_test_pkgbuilds.groovy jenkinsfile to test the AUR Pkg.
  6. Upload the pkg.tar.zst arch pkg generated by the above jenkins job to the releases.

MacOS

  1. Create a macos releases folder.
  2. Build the project (cargo build --release).
  3. Copy the built bin to the releases folder, change name from estash to estash-macos.
  4. Add the bin to the .app template (with the estash name in the macos folder).
  5. Change the version in the .plist file in the .app template
  6. Copy the .app folder to the releases folder.
  7. Compress .app folder into .tar.gz (with the name estash-macos-app.tar.gz).
  8. Make dmg from the .app folder using the make-dmg.sh script, remove the .app folder.
  9. Upload all the files inside the macos releases folder to the github release.
  10. Run the build_homebrew.groovy jenkinsfile.
  11. Update estash brew formula in the tap repo & upload the archive to the github release.

Windows

  1. Make a builds folder.
  2. Compile project (cargo build --release).
  3. Use resource hacker to add the logo to the exe (the .ico file).
  4. Copy bin to builds folder.
  5. Make an exe installer by changing the placeholder for the version from the inno file to the new version.
  6. Copy exe installer to builds.
  7. Upload builds to the github release.

General

  1. Change from pre-release to release.
  2. Update crates.io (cargo publish).
  3. Done.
Clone this wiki locally