1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-12-04 14:46:30 -05:00
icecast-server/ci/README.md

50 lines
2.2 KiB
Markdown
Raw Normal View History

# Icecast CI for automated OBS Uploads
This directory contains scripting triggered by .gitlab-ci.yml to automatically upload releases and nightlies to build.opensuse.org.
The Pipeline triggers are set so that releases are pushed only on tags and nightlies on master/devel commits into respective OBS projects.
These are defined in the ci/osc/ for releases and nightlies in their respective config files.
# How to release
To make a new release please call the magic version changer as following from the repo root:
```
export ICECAST_BETA_VERSION=3
ci/create-changelog-and-set-versions.sh "$ICECAST_BETA_VERSION" "2.4.99.$ICECAST_BETA_VERSION" "2.5 beta$ICECAST_BETA_VERSION" "25-beta-$ICECAST_BETA_VERSION" "2.5-beta$ICECAST_BETA_VERSION" "_VERSION_ARCHIVE_" "2.4.99.$ICECAST_BETA_VERSION" "now" "Stephan Jauernick <info@stephan-jauernick.de>" "Preparing for 2.5 beta$ICECAST_BETA_VERSION aka 2.4.99.$ICECAST_BETA_VERSION" "icecast" "mingw32-icecast" "mingw32-icecast-installer"
```
Please adapt the "ICECAST_BETA_VERSION", the Author, the Date(now; please enter a valid ISO8601 Date if needed) and the Message as needed.
This script/mechanism will update all the version references and then show you a git status/diff. Please check all changes and commit them as needed.
After tagging and uploading the release will be picked up by gitlabs CI and a release will be pushed to OBS.
# Nightlies
A nightly will be build on each change to master/devel - these will be marked with a git version + build date in the version and a "correct" changelog entry where relevant.
# Required Repo Configuration in Gitlab
- master and devel need to be set to protected with Maintainer only push/merge permissions
- all tags need to be set to protected with Maintainer only permissions
- There needs to be a "File" Variable configured as follows:
Name: OSC_RC
Protected only: yes
Content:
```
[general]
apiurl = https://api.opensuse.org
[https://api.opensuse.org]
user = OBS USER
pass = OBS PASSWORD
```
The referenced user needs to have Maintainer access to the OBS projects referenced in the build configuration files.
# How to improve
Make version update script more robust... currently it will probably explode when we do a final 2.5 release.
Rework OBS spec and debian files to modern standards.