


The solution? On pushing a tagged commit to GitHub, each platform specific package is automatically built via GitHub Actions.

Hence, it is necessary to build those using PyInstaller on each corresponding OS for every new release. To make it easy for users, the Windows and MacOS version is a single executable file. The desktop client is written in Go (there also is an older Python version) and is available on Linux, Windows and MacOS. My open source app Clipster is a multi platform cloud clipboard solution. We’ll look at a hands-on, real-life example workflow to solve our challenge. Hence, you might need to take a look at the documentation when you get lost. In what follows, I will omit explaining some of the more basic functionalities of GitHub Actions. That makes it perfectly suitable for our use case, where we need to build on different platforms. For that, you can define a workflow to be run on a customizable cloud machine that runs either Linux, Windows or MacOS. You can make it execute actions on specific GitHub events.

It has seamless integration with your GitHub repository, is simple and free. It’s a tool for CI/CD (continuous integration / deployment). However, if you happen to use GitHub, GitHub Actions will be your best bet. There are several options for building in the cloud.
