mirror of
https://codeberg.org/knightsub9/lxcafe.git
synced 2026-07-19 19:30:16 +02:00
added release script and docs
This commit is contained in:
@@ -17,3 +17,34 @@ This allows you to test the script without affecting your main system.
|
|||||||
You can also make use of snapshot feature of the virtualization software to easily revert to a clean state after testing,
|
You can also make use of snapshot feature of the virtualization software to easily revert to a clean state after testing,
|
||||||
e.g. state directly after Linux Mint installation, before running the post-installation script.
|
e.g. state directly after Linux Mint installation, before running the post-installation script.
|
||||||
This way you can test the script multiple times without needing to reinstall Linux Mint each time.
|
This way you can test the script multiple times without needing to reinstall Linux Mint each time.
|
||||||
|
|
||||||
|
## Release Process
|
||||||
|
|
||||||
|
This project uses a simple release process based on git tags.
|
||||||
|
|
||||||
|
### Versioning
|
||||||
|
- Version is stored in `VERSION` file (format: v0, v1, v2, ...)
|
||||||
|
- Major version increments only (major-bugfix scheme)
|
||||||
|
- Script version is also stored in `SCRIPT_VERSION` variable within the main script to display version during script execution
|
||||||
|
|
||||||
|
### Creating a Release
|
||||||
|
Run the release script from the repository root:
|
||||||
|
```bash
|
||||||
|
./release.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
The script will:
|
||||||
|
1. Check for uncommitted local changes (exits if any exist)
|
||||||
|
2. Show current version and propose next version
|
||||||
|
3. Prompt for confirmation
|
||||||
|
4. Update VERSION file and SCRIPT_VERSION in the script
|
||||||
|
5. Create a git commit
|
||||||
|
6. Create an annotated tag
|
||||||
|
7. Prompt to push to origin (including tags)
|
||||||
|
|
||||||
|
### Gitea Integration
|
||||||
|
When a tag is pushed to the remote, Gitea automatically creates a release from it.
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
- Clean working tree (no uncommitted changes)
|
||||||
|
- Git remote configured (origin)
|
||||||
@@ -1,12 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
SCRIPT_VERSION="v9"
|
||||||
# "Anderungs Historie
|
|
||||||
# Datum Version Name Änderung
|
|
||||||
# 2025-11-11 v6 MartinP mehr Erläuterungen reingeschrieben
|
|
||||||
# 2025-11-17 v7 Mark Simualtion Modus und 32Bit abfrage entfernt
|
|
||||||
# 2025-12-12 v8 MartinP Erläuterungen ergänzt und Typos entfernt
|
|
||||||
#
|
|
||||||
|
|
||||||
bIsVlcInstalled=false
|
bIsVlcInstalled=false
|
||||||
|
|
||||||
@@ -26,9 +20,10 @@ question_answered_with_yes() {
|
|||||||
|
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
###################################
|
#####################################
|
||||||
#### Nachinstallationsarbeiten ####
|
#### Nachinstallationsarbeiten
|
||||||
###################################
|
#### Version: $SCRIPT_VERSION
|
||||||
|
#####################################
|
||||||
|
|
||||||
#### Was tut dieses Skript? ####
|
#### Was tut dieses Skript? ####
|
||||||
|
|
||||||
|
|||||||
Executable
+66
@@ -0,0 +1,66 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ -n "$(git status --porcelain)" ]; then
|
||||||
|
echo "Error: You have uncommitted local changes."
|
||||||
|
echo "Please commit or stash them before releasing."
|
||||||
|
echo ""
|
||||||
|
echo "Uncommitted files:"
|
||||||
|
git status --short
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
VERSION_FILE="VERSION"
|
||||||
|
SCRIPT_FILE="post_installation_script/Nachinstallationsarbeiten_LC_Esslingen_XFCE.sh"
|
||||||
|
|
||||||
|
if [ ! -f "$VERSION_FILE" ]; then
|
||||||
|
echo "Error: $VERSION_FILE not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
CURRENT_VERSION=$(cat "$VERSION_FILE" | tr -d '\n')
|
||||||
|
|
||||||
|
if [ ! -f "$SCRIPT_FILE" ]; then
|
||||||
|
echo "Error: $SCRIPT_FILE not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
CURRENT_MAJOR=${CURRENT_VERSION#v}
|
||||||
|
|
||||||
|
NEXT_VERSION=$((CURRENT_MAJOR + 1))
|
||||||
|
NEXT_VERSION_STR="v$NEXT_VERSION"
|
||||||
|
|
||||||
|
echo "Current version: $CURRENT_VERSION"
|
||||||
|
echo "Proposed version: $NEXT_VERSION_STR"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
read -p "Confirm release version $NEXT_VERSION_STR? [y/N]: " confirm
|
||||||
|
|
||||||
|
if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
|
||||||
|
echo "Release aborted."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$NEXT_VERSION_STR" > "$VERSION_FILE"
|
||||||
|
|
||||||
|
sed -i.bak "s/^SCRIPT_VERSION=.*/SCRIPT_VERSION=\"$NEXT_VERSION_STR\"/" "$SCRIPT_FILE"
|
||||||
|
if [ -f "${SCRIPT_FILE}.bak" ]; then
|
||||||
|
rm "${SCRIPT_FILE}.bak"
|
||||||
|
fi
|
||||||
|
|
||||||
|
git add "$VERSION_FILE" "$SCRIPT_FILE"
|
||||||
|
git commit -m "Release $NEXT_VERSION_STR"
|
||||||
|
|
||||||
|
git tag -a "$NEXT_VERSION_STR" -m "Release $NEXT_VERSION_STR"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Tag $NEXT_VERSION_STR created locally."
|
||||||
|
read -p "Push to origin (includes tags)? [y/N]: " push_confirm
|
||||||
|
|
||||||
|
if [[ "$push_confirm" == "y" || "$push_confirm" == "Y" ]]; then
|
||||||
|
git push origin --tags
|
||||||
|
echo "Done! Gitea will create release from tag $NEXT_VERSION_STR"
|
||||||
|
else
|
||||||
|
echo "Release prepared locally. Push manually with: git push origin --tags"
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user