mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-05 21:15:38 -05:00
Refactor distro logic & automation
This commit is contained in:
54
.github/workflows/run-obs.yml
vendored
54
.github/workflows/run-obs.yml
vendored
@@ -129,11 +129,15 @@ jobs:
|
|||||||
github.event_name == 'workflow_dispatch' ||
|
github.event_name == 'workflow_dispatch' ||
|
||||||
needs.check-updates.outputs.has_updates == 'true'
|
needs.check-updates.outputs.has_updates == 'true'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Determine packages to update
|
- name: Determine packages to update
|
||||||
id: packages
|
id: packages
|
||||||
@@ -153,15 +157,34 @@ jobs:
|
|||||||
echo "packages=${{ needs.check-updates.outputs.packages }}" >> $GITHUB_OUTPUT
|
echo "packages=${{ needs.check-updates.outputs.packages }}" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Update version in packaging files
|
- name: Update dms-git spec version
|
||||||
|
if: contains(steps.packages.outputs.packages, 'dms-git') || steps.packages.outputs.packages == 'all'
|
||||||
|
run: |
|
||||||
|
# Get commit info for dms-git versioning
|
||||||
|
COMMIT_HASH=$(git rev-parse --short=8 HEAD)
|
||||||
|
COMMIT_COUNT=$(git rev-list --count HEAD)
|
||||||
|
BASE_VERSION=$(grep -oP '^Version:\s+\K[0-9.]+' distro/opensuse/dms.spec | head -1 || echo "0.6.2")
|
||||||
|
|
||||||
|
NEW_VERSION="${BASE_VERSION}+git${COMMIT_COUNT}.${COMMIT_HASH}"
|
||||||
|
echo "📦 Updating dms-git.spec to version: $NEW_VERSION"
|
||||||
|
|
||||||
|
# Update version in spec
|
||||||
|
sed -i "s/^Version:.*/Version: $NEW_VERSION/" distro/opensuse/dms-git.spec
|
||||||
|
|
||||||
|
# Add changelog entry
|
||||||
|
DATE_STR=$(date "+%a %b %d %Y")
|
||||||
|
CHANGELOG_ENTRY="* $DATE_STR Avenge Media <AvengeMedia.US@gmail.com> - ${NEW_VERSION}-1\n- Git snapshot (commit $COMMIT_COUNT: $COMMIT_HASH)"
|
||||||
|
sed -i "/%changelog/a\\$CHANGELOG_ENTRY" distro/opensuse/dms-git.spec
|
||||||
|
|
||||||
|
- name: Update dms stable version
|
||||||
if: steps.packages.outputs.version != ''
|
if: steps.packages.outputs.version != ''
|
||||||
run: |
|
run: |
|
||||||
VERSION="${{ steps.packages.outputs.version }}"
|
VERSION="${{ steps.packages.outputs.version }}"
|
||||||
VERSION_NO_V="${VERSION#v}"
|
VERSION_NO_V="${VERSION#v}"
|
||||||
echo "Updating packaging to version $VERSION_NO_V"
|
echo "Updating packaging to version $VERSION_NO_V"
|
||||||
|
|
||||||
# Update openSUSE spec files
|
# Update openSUSE dms spec (stable only)
|
||||||
sed -i "s/^Version:.*/Version: $VERSION_NO_V/" distro/opensuse/*.spec
|
sed -i "s/^Version:.*/Version: $VERSION_NO_V/" distro/opensuse/dms.spec
|
||||||
|
|
||||||
# Update Debian _service files
|
# Update Debian _service files
|
||||||
for service in distro/debian/*/_service; do
|
for service in distro/debian/*/_service; do
|
||||||
@@ -169,11 +192,22 @@ jobs:
|
|||||||
sed -i "s|<param name=\"revision\">v[0-9.]*</param>|<param name=\"revision\">$VERSION</param>|" "$service"
|
sed -i "s|<param name=\"revision\">v[0-9.]*</param>|<param name=\"revision\">$VERSION</param>|" "$service"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
- name: Commit version updates
|
||||||
|
run: |
|
||||||
git config user.name "github-actions[bot]"
|
git config user.name "github-actions[bot]"
|
||||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
git add distro/
|
|
||||||
git commit -m "chore: update packaging to $VERSION" || echo "No changes to commit"
|
if ! git diff --exit-code distro/opensuse/ >/dev/null 2>&1; then
|
||||||
|
git add distro/
|
||||||
|
git commit -m "chore: update packaging versions
|
||||||
|
|
||||||
|
🤖 Automated update by GitHub Actions
|
||||||
|
Workflow run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" || echo "No changes to commit"
|
||||||
|
git push || echo "Could not push (may need permissions)"
|
||||||
|
else
|
||||||
|
echo "No version changes to commit"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Install OSC
|
- name: Install OSC
|
||||||
run: |
|
run: |
|
||||||
@@ -203,13 +237,11 @@ jobs:
|
|||||||
MESSAGE="Update to ${{ steps.packages.outputs.version }}"
|
MESSAGE="Update to ${{ steps.packages.outputs.version }}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd distro
|
|
||||||
|
|
||||||
if [[ "$PACKAGES" == "all" ]]; then
|
if [[ "$PACKAGES" == "all" ]]; then
|
||||||
bash scripts/obs-upload.sh dms "$MESSAGE"
|
bash distro/scripts/obs-upload.sh dms "$MESSAGE"
|
||||||
bash scripts/obs-upload.sh dms-git "Automated git update"
|
bash distro/scripts/obs-upload.sh dms-git "Automated git update"
|
||||||
else
|
else
|
||||||
bash scripts/obs-upload.sh "$PACKAGES" "$MESSAGE"
|
bash distro/scripts/obs-upload.sh "$PACKAGES" "$MESSAGE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Summary
|
- name: Summary
|
||||||
|
|||||||
8
.github/workflows/run-ppa.yml
vendored
8
.github/workflows/run-ppa.yml
vendored
@@ -63,8 +63,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
PACKAGES="${{ steps.packages.outputs.packages }}"
|
PACKAGES="${{ steps.packages.outputs.packages }}"
|
||||||
|
|
||||||
cd distro/ubuntu/ppa
|
|
||||||
|
|
||||||
if [[ "$PACKAGES" == "all" ]]; then
|
if [[ "$PACKAGES" == "all" ]]; then
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
echo "Uploading dms to PPA..."
|
echo "Uploading dms to PPA..."
|
||||||
@@ -72,19 +70,19 @@ jobs:
|
|||||||
echo "🔄 Using rebuild release number: ppa$REBUILD_RELEASE"
|
echo "🔄 Using rebuild release number: ppa$REBUILD_RELEASE"
|
||||||
fi
|
fi
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
bash create-and-upload.sh "../dms" dms questing
|
bash distro/scripts/ppa-upload.sh "distro/ubuntu/dms" dms questing
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
echo "Uploading dms-git to PPA..."
|
echo "Uploading dms-git to PPA..."
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
bash create-and-upload.sh "../dms-git" dms-git questing
|
bash distro/scripts/ppa-upload.sh "distro/ubuntu/dms-git" dms-git questing
|
||||||
else
|
else
|
||||||
PPA_NAME="$PACKAGES"
|
PPA_NAME="$PACKAGES"
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
echo "Uploading $PACKAGES to PPA..."
|
echo "Uploading $PACKAGES to PPA..."
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
bash create-and-upload.sh "../$PACKAGES" "$PPA_NAME" questing
|
bash distro/scripts/ppa-upload.sh "distro/ubuntu/$PACKAGES" "$PPA_NAME" questing
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Summary
|
- name: Summary
|
||||||
|
|||||||
0
distro/scripts/obs-status.sh
Normal file → Executable file
0
distro/scripts/obs-status.sh
Normal file → Executable file
0
distro/scripts/obs-upload.sh
Normal file → Executable file
0
distro/scripts/obs-upload.sh
Normal file → Executable file
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Generic PPA uploader for DMS packages
|
# Ubuntu PPA uploader for DMS packages
|
||||||
# Usage: ./upload-ppa.sh <changes-file> <ppa-name>
|
# Usage: ./upload-ppa.sh <changes-file> <ppa-name>
|
||||||
#
|
#
|
||||||
# Example:
|
# Example:
|
||||||
@@ -53,8 +53,8 @@ PPA_NAME="${ARGS[1]}"
|
|||||||
UBUNTU_SERIES="${ARGS[2]:-questing}"
|
UBUNTU_SERIES="${ARGS[2]:-questing}"
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
BUILD_SCRIPT="$SCRIPT_DIR/create-source.sh"
|
BUILD_SCRIPT="$SCRIPT_DIR/ppa-build.sh"
|
||||||
UPLOAD_SCRIPT="$SCRIPT_DIR/upload-ppa.sh"
|
UPLOAD_SCRIPT="$SCRIPT_DIR/ppa-dput.sh"
|
||||||
|
|
||||||
# Validate scripts exist
|
# Validate scripts exist
|
||||||
if [ ! -f "$BUILD_SCRIPT" ]; then
|
if [ ! -f "$BUILD_SCRIPT" ]; then
|
||||||
@@ -1,169 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Manual testing script for DMS packaging
|
|
||||||
# Tests OBS (Debian/openSUSE) and PPA (Ubuntu) workflows
|
|
||||||
# Usage: ./distro/test-packaging.sh [obs|ppa|all]
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
||||||
DISTRO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
||||||
REPO_ROOT="$(cd "$DISTRO_DIR/.." && pwd)"
|
|
||||||
|
|
||||||
# Colors
|
|
||||||
RED='\033[0;31m'
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
YELLOW='\033[1;33m'
|
|
||||||
BLUE='\033[0;34m'
|
|
||||||
NC='\033[0m'
|
|
||||||
|
|
||||||
info() { echo -e "${BLUE}[INFO]${NC} $1"; }
|
|
||||||
success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
|
|
||||||
error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
|
||||||
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
|
||||||
|
|
||||||
TEST_MODE="${1:-all}"
|
|
||||||
|
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
||||||
echo "DMS Packaging Test Suite"
|
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Test 1: OBS Upload (Debian + openSUSE)
|
|
||||||
if [[ "$TEST_MODE" == "obs" ]] || [[ "$TEST_MODE" == "all" ]]; then
|
|
||||||
echo "═══════════════════════════════════════════════════════════════════"
|
|
||||||
echo "TEST 1: OBS Upload (Debian + openSUSE)"
|
|
||||||
echo "═══════════════════════════════════════════════════════════════════"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
OBS_SCRIPT="$SCRIPT_DIR/obs-upload.sh"
|
|
||||||
|
|
||||||
if [[ ! -f "$OBS_SCRIPT" ]]; then
|
|
||||||
error "OBS script not found: $OBS_SCRIPT"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
info "OBS script location: $OBS_SCRIPT"
|
|
||||||
info "Available packages: dms, dms-git"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
warn "This will upload to OBS (home:AvengeMedia)"
|
|
||||||
read -p "Continue with OBS test? [y/N] " -n 1 -r
|
|
||||||
echo
|
|
||||||
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
info "Select package to test:"
|
|
||||||
echo " 1. dms (stable)"
|
|
||||||
echo " 2. dms-git (nightly)"
|
|
||||||
echo " 3. all (both packages)"
|
|
||||||
read -p "Choice [1]: " -n 1 -r PKG_CHOICE
|
|
||||||
echo
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
PKG_CHOICE="${PKG_CHOICE:-1}"
|
|
||||||
|
|
||||||
cd "$REPO_ROOT"
|
|
||||||
|
|
||||||
case "$PKG_CHOICE" in
|
|
||||||
1)
|
|
||||||
info "Testing OBS upload for 'dms' package..."
|
|
||||||
bash "$OBS_SCRIPT" dms "Test packaging update"
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
info "Testing OBS upload for 'dms-git' package..."
|
|
||||||
bash "$OBS_SCRIPT" dms-git "Test packaging update"
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
info "Testing OBS upload for all packages..."
|
|
||||||
bash "$OBS_SCRIPT" all "Test packaging update"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
error "Invalid choice"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
success "OBS test completed"
|
|
||||||
echo ""
|
|
||||||
info "Check build status: https://build.opensuse.org/project/monitor/home:AvengeMedia"
|
|
||||||
else
|
|
||||||
warn "OBS test skipped"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Test 2: PPA Upload (Ubuntu)
|
|
||||||
if [[ "$TEST_MODE" == "ppa" ]] || [[ "$TEST_MODE" == "all" ]]; then
|
|
||||||
echo "═══════════════════════════════════════════════════════════════════"
|
|
||||||
echo "TEST 2: PPA Upload (Ubuntu)"
|
|
||||||
echo "═══════════════════════════════════════════════════════════════════"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
PPA_SCRIPT="$DISTRO_DIR/ubuntu/ppa/create-and-upload.sh"
|
|
||||||
|
|
||||||
if [[ ! -f "$PPA_SCRIPT" ]]; then
|
|
||||||
error "PPA script not found: $PPA_SCRIPT"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
info "PPA script location: $PPA_SCRIPT"
|
|
||||||
info "Available PPAs: dms, dms-git"
|
|
||||||
info "Ubuntu series: questing (25.10)"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
warn "This will upload to Launchpad PPA (ppa:avengemedia/dms)"
|
|
||||||
read -p "Continue with PPA test? [y/N] " -n 1 -r
|
|
||||||
echo
|
|
||||||
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
info "Select package to test:"
|
|
||||||
echo " 1. dms (stable)"
|
|
||||||
echo " 2. dms-git (nightly)"
|
|
||||||
read -p "Choice [1]: " -n 1 -r PKG_CHOICE
|
|
||||||
echo
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
PKG_CHOICE="${PKG_CHOICE:-1}"
|
|
||||||
|
|
||||||
case "$PKG_CHOICE" in
|
|
||||||
1)
|
|
||||||
info "Testing PPA upload for 'dms' package..."
|
|
||||||
DMS_PKG="$DISTRO_DIR/ubuntu/dms"
|
|
||||||
PPA_NAME="dms"
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
info "Testing PPA upload for 'dms-git' package..."
|
|
||||||
DMS_PKG="$DISTRO_DIR/ubuntu/dms-git"
|
|
||||||
PPA_NAME="dms-git"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
error "Invalid choice"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
if [[ ! -d "$DMS_PKG" ]]; then
|
|
||||||
error "DMS package directory not found: $DMS_PKG"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
bash "$PPA_SCRIPT" "$DMS_PKG" "$PPA_NAME" questing
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
success "PPA test completed"
|
|
||||||
echo ""
|
|
||||||
info "Check build status: https://launchpad.net/~avengemedia/+archive/ubuntu/dms/+packages"
|
|
||||||
else
|
|
||||||
warn "PPA test skipped"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Summary
|
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
||||||
echo "Testing Summary"
|
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
||||||
@@ -9,7 +9,7 @@ Type=simple
|
|||||||
ExecStart=/usr/bin/dms run --session
|
ExecStart=/usr/bin/dms run --session
|
||||||
ExecReload=/usr/bin/pkill -USR1 -x dms
|
ExecReload=/usr/bin/pkill -USR1 -x dms
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=2
|
RestartSec=1.23
|
||||||
TimeoutStopSec=10
|
TimeoutStopSec=10
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
|||||||
Reference in New Issue
Block a user