Deploy To GitHub Releases¶
This document defines the package publishing flow for NoLimitConnect.
Goal¶
Each deploy task performs this chain:
- Run the required release build and package task through existing task dependencies.
- Find the newest generated package artifact.
- Generate a SHA-256 sidecar file for that artifact.
- Upload both files to a GitHub release.
- Optionally update docs/download.md in the website/docs repository.
Source Of Truth¶
GitHub Releases are the source of truth for downloadable artifacts.
Each platform deploy uploads:
- Package artifact file.
- Matching .sha256 sidecar file.
Download URL pattern:
https://github.com/nolimitconnect/NoLimitConnect/releases/download/<tag>/<filename>
Authentication¶
Deploy scripts use one of the following environment variables:
- GITHUB_RELEASES_TOKEN
- GITHUB_TOKEN
Token scope requirement:
- Repository contents write access (to create/update release assets).
Deploy Scripts¶
Deploy automation is implemented in these scripts:
- .vscode/deploy-package-to-website.ps1
- .vscode/deploy-package-to-website.py
Supported package types:
- windows
- linux
- android-signed
- flatpak
Optional behavior:
- -SkipWebsiteUpdate disables markdown updates.
- -GitHubReleaseTag targets a specific release tag (defaults to v
).
If the target release tag does not exist, the script creates it.
Download Page Update¶
When website update is enabled and docs/download.md is available, the script updates the matching section marker block:
<!-- BEGIN SECTION: windows --> <!-- END SECTION: windows -->
<!-- BEGIN SECTION: linux --> <!-- END SECTION: linux -->
<!-- BEGIN SECTION: android-signed --> <!-- END SECTION: android-signed -->
<!-- BEGIN SECTION: flatpak --> <!-- END SECTION: flatpak -->
Each section includes:
- Direct package link.
- SHA-256 file link.
- Last updated timestamp.
- Short package note.
Task Mapping¶
Deploy tasks are defined in .vscode/tasks.json.
Task behavior:
- Deploy Windows Package: build/package Windows and upload release assets.
- Deploy Linux Package: build/package Linux and upload release assets.
- Deploy Android Signed Package: build/sign Android and upload release assets.
- Deploy Flatpak Package: build/package Flatpak and upload release assets.
Release Sequences¶
Windows¶
- Run Deploy Windows Package.
Linux¶
- Run Deploy Linux Package on a Linux host.
Android Signed¶
- Set required NLC_ANDROID_* signing environment variables.
- Run Deploy Android Signed Package.
Flatpak¶
- Ensure flatpak-builder is installed on the Linux host.
- Run Deploy Flatpak Package.
Notes¶
- KeepLatestVersions is currently accepted for compatibility but does not prune GitHub releases.
- Website update is optional and can be skipped for release-only publishing.
- The local flatpack directory name is intentionally preserved to match current package output paths.