GitHub Releases are created automatically when a tag matching Release-* is pushed.
The source repository is private. Public downloads are published to the binary-only release repository:
https://github.com/JJDing-Louis/YTDownloader-Release/releases
See Public Release Repository for setup details.
Use tags in this format:
Release-1.0.0
Release-1.0.1
Release-1.1.0
Tags with a v prefix after Release- are also accepted:
Release-v1.0.0
The workflow normalizes both formats to the application version 1.0.0.
git checkout develop
git pull
git tag Release-1.0.0
git push origin Release-1.0.0The CD workflow will:
- parse the version from the tag;
- publish the app as a self-contained
win-x64build; - build the Inno Setup installer;
- generate
SHA256SUMS.txt; - generate release notes from commits since the previous
Release-*tag; - create a GitHub Release in
JJDing-Louis/YTDownloader-Release; - upload the installer and hash file to the public release repository.
The workflow requires these private source repository secrets:
RELEASE_REPO_TOKEN: fine-grained PAT that can write releases toJJDing-Louis/YTDownloader-Release.GH_PACKAGES_TOKEN: classic PAT withread:packagespermission so GitHub Actions can restoreJJNET.DataAccessandJJNET.Utilityfrom GitHub Packages.
.\installer\build-installer.bat 1.0.0The installer is written to:
installer\Output\YTDownloader_Setup_v1.0.0.exe
To generate hashes locally:
.\scripts\New-FileHashes.ps1 -Path .\installer\Output -OutputFile .\installer\Output\SHA256SUMS.txtRelease notes are generated during the CD workflow from git commit subjects between the previous release tag and the current tag. Keep commit messages clear because they become part of the public changelog.
YTDownloader releases use the YTDownloader End User License Agreement. Users may install and use the official application for personal, learning, backup, and other non-commercial purposes. Commercial use, redistribution, product bundling, paid packaging, and commercial service use are not permitted.
The source repository is private. No source-code license is granted unless J.J.Ding gives express written permission.