-
Notifications
You must be signed in to change notification settings - Fork 0
Publish Release
GitHub releases are automated using GitHub Actions. To publish a release to GitHub, tag a new version and push the new tag to GitHub:
git tag <release-version>
git push origin <release-version>
Of course, only code owners can push to the GitHub repo...
You can also generate release artifacts on your own machine, using Inno Setup to package a Windows installer, and GoReleaser for Linux packages. You can follow the GitHub Action workflow, but since that process is focused on building all of the release artifacts, it may be difficult to follow when you just want to build to a single target. Regardless of the target, the basic steps are:
- Build command-line program
- Build GUI stand-alone executable
- Bundle the two binaries into a package (along with other release files, e.g. LICENSE)
To build the GUI stand-alone executable:
cd gui
pip install -r requirements.txt
./create_gui.sh
Install prerequisites
sudo apt-get install libfuse-dev
go get .
go build .
git checkout <version-tag>
go install github.com/goreleaser/goreleaser@latest
goreleaser build --clean --single-target
Using git bash, you can compile both the command-line program and the GUI using the same commands as on Linux.
To build the Windows installer, you need to install Inno Setup. This is a free installer available for commercial use for Windows by Jordan Russell and Martijn Laan. It only runs on Windows and can be downloaded here.
Simply run the installer and open the ./build/windows_installer_build.iss
file and then run the compiler. You will get the Windows installer as a .exe file in ./build/Ouptut/cloudfuse.exe
.
The cloudfuse command-line program is written in Go, and can be easily cross-compiled. But the GUI is written in Python, and compiled with PyInstaller, which cannot cross-compile. So you can only build the GUI to target the architecture and platform which you are compiling on.