Skip to content

Latest commit

 

History

History
83 lines (55 loc) · 2.41 KB

File metadata and controls

83 lines (55 loc) · 2.41 KB

Release Process

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.

Version Format

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.

Create a Release

git checkout develop
git pull
git tag Release-1.0.0
git push origin Release-1.0.0

The CD workflow will:

  1. parse the version from the tag;
  2. publish the app as a self-contained win-x64 build;
  3. build the Inno Setup installer;
  4. generate SHA256SUMS.txt;
  5. generate release notes from commits since the previous Release-* tag;
  6. create a GitHub Release in JJDing-Louis/YTDownloader-Release;
  7. 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 to JJDing-Louis/YTDownloader-Release.
  • GH_PACKAGES_TOKEN: classic PAT with read:packages permission so GitHub Actions can restore JJNET.DataAccess and JJNET.Utility from GitHub Packages.

Local Installer Build

.\installer\build-installer.bat 1.0.0

The installer is written to:

installer\Output\YTDownloader_Setup_v1.0.0.exe

Hash Generation

To generate hashes locally:

.\scripts\New-FileHashes.ps1 -Path .\installer\Output -OutputFile .\installer\Output\SHA256SUMS.txt

Release Notes

Release 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.

License

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.