Skip to content

Build and release process

ransome1 edited this page Jan 19, 2025 · 7 revisions

Build sleek from source code

  1. Install Git, yarn and node.js.
  2. Clone sleek with git clone https://github.com/ransome1/sleek.git and cd into sleek's directory
  3. Install dependencies with yarn
  4. Build and package sleek with yarn run build:unpack
  5. The binary will be placed in the working directory, in a subfolder named dist

Build and release using the GitHub workflow

This page is relevant only for collaborators with sufficient permissions to this repository.

The process of building and releasing sleek to Github is fully automated, using Github actions.

Let me walk you through how to build a pre-release (test release).

  1. In the package.json you need to bump up the version. For a pre-release, I introduced the convention of declaring these releases as release candidates. If you want to start building test releases for a future 2.1.3 you should name the first pre-release 2.1.3-rc1. The second one is 2.1.3-rc2
  2. You need to push a commit to either the main or the develop branch. For test releases, this will most likely be the develop branch, since main branch should always contain the code base of the latest full-release. This commit needs to contain the version number in package.json bumped up
  3. You need to create a tag. That is important, because the build process is triggered by tag creation. Let’s assume you create the first test build for version 2.1.3-rc1:
  • git tag 2.1.3-rc1
  • git push —tags (This will trigger the build process and use the last pushed commit to either main or develop for its source code)
  1. Now you can take a look at the build process and if it runs through or comes up with a build error: https://github.com/ransome1/sleek/actions
  2. In sleeks releases page check if a draft is created and associated with the right tag (2.1.3-rc1), add the title (2.1.3-rc1) and enter a description of the changes you made. Check the Pre-release checkbox. Like this, the release will be excluded from the auto update process and won't be featured on GitHub as the latest release. Publish the pre-release.