Navigation
Releases
Creating releases, attaching files, draft and prerelease, association with tags
Releases are a way to publish a version of your project: binaries, archives, changelog. Each release is tied to a git tag.
Creating a Release
Via the Interface
- Open the repository -> “Releases” tab
- Click “New release”
- Fill in:
- Tag - an existing git tag or a new one (e.g.,
v1.0.0). If the tag doesn’t exist - it will be created - Title - the release name (e.g., “Version 1.0.0”)
- Description - Markdown with a description of changes
- Tag - an existing git tag or a new one (e.g.,
- Optionally:
- Draft - the release is not visible to regular users until published
- Prerelease - marked as unstable (not considered “latest”)
- Click “Create”
Via git
Create a tag and push it:
git tag -a v1.0.0 -m "Version 1.0.0"
git push --tags
Then create a release for the tag via the interface.
Attaching Files
Files can be attached to a release: compiled binaries, source archives, documentation.
Uploading
- Open the release -> “Edit”
- Drag files to the upload area or click “Choose files”
- Save
Limits
- Maximum 500 MB per file
- File name: up to 255 characters, no
.. - Unsafe types (HTML, JavaScript, SVG) are automatically replaced with
application/octet-streamto prevent XSS
Download Counter
A download counter is maintained for each attachment - visible in the interface next to the file.
Drafts and Prereleases
- Draft - hidden from regular users. Useful for preparing a release: you can add a description and files, then publish later
- Prerelease - visible to everyone, but not considered “latest stable”. Useful for beta/rc versions
The “latest release” (displayed on the repository’s main page) is the most recent release that is not a draft and not a prerelease.
Automatic Releases from CI
Typical scenario: on tag push, automatically build binaries and create a release.
name: Release
on:
push:
tags: ['v*']
jobs:
build:
image: rust:1.93
steps:
- run: cargo build --release
artifacts:
paths:
- target/release/myapp
Automatic release creation from CI currently requires an API call. Artifacts are available through the CI interface for manual attachment to a release.
Deletion
When a release is deleted, all attached files are also deleted. The git tag remains.