mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-05 21:15:38 -05:00
Enable Copr stable builds
This commit is contained in:
139
.github/workflows/release.yml
vendored
139
.github/workflows/release.yml
vendored
@@ -61,14 +61,12 @@ jobs:
|
||||
## Assets
|
||||
|
||||
### Complete Packages
|
||||
- **`dms-full-amd64.tar.gz`** - Complete package for x86_64 systems (CLI binaries + QML source + installation guide)
|
||||
- **`dms-full-arm64.tar.gz`** - Complete package for ARM64 systems (CLI binaries + QML source + installation guide)
|
||||
- **`dms-full-amd64.tar.gz`** - Complete package for x86_64 systems (CLI binary + QML source + installation guide)
|
||||
- **`dms-full-arm64.tar.gz`** - Complete package for ARM64 systems (CLI binary + QML source + installation guide)
|
||||
|
||||
### Individual Components
|
||||
- **`dms-cli-amd64.gz`** - DMS CLI binary for x86_64 systems
|
||||
- **`dms-cli-arm64.gz`** - DMS CLI binary for ARM64 systems
|
||||
- **`dms-distropkg-amd64.gz`** - DMS CLI binary built with distro_package tag for AMD64 systems
|
||||
- **`dms-distropkg-arm64.gz`** - DMS CLI binary built with distro_package tag for ARM64 systems
|
||||
- **`dms-qml.tar.gz`** - QML source code only
|
||||
|
||||
### Checksums
|
||||
@@ -114,16 +112,14 @@ jobs:
|
||||
# Download DMS CLI binaries from the danklinux repo
|
||||
gh release download "${TAG}" -R "${DMS_REPO}" --dir ./_dms_assets
|
||||
|
||||
# Rename CLI binaries to dms-cli-* format and copy distropkg binaries
|
||||
# Rename CLI binaries to dms-cli-* format
|
||||
for file in _dms_assets/dms-*.gz*; do
|
||||
if [ -f "$file" ]; then
|
||||
basename=$(basename "$file")
|
||||
if [[ "$basename" == dms-distropkg-* ]]; then
|
||||
cp "$file" "_release_assets/$basename"
|
||||
else
|
||||
newname=$(echo "$basename" | sed 's/^dms-/dms-cli-/')
|
||||
cp "$file" "_release_assets/$newname"
|
||||
fi
|
||||
# dms-amd64.gz -> dms-cli-amd64.gz
|
||||
# dms-amd64.gz.sha256 -> dms-cli-amd64.gz.sha256
|
||||
newname=$(echo "$basename" | sed 's/^dms-/dms-cli-/')
|
||||
cp "$file" "_release_assets/$newname"
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -152,12 +148,6 @@ jobs:
|
||||
chmod +x _temp_full/bin/dms
|
||||
fi
|
||||
|
||||
# Copy distropkg binary if it exists
|
||||
if [ -f "_dms_assets/dms-distropkg-${arch}.gz" ]; then
|
||||
gunzip -c "_dms_assets/dms-distropkg-${arch}.gz" > _temp_full/bin/dms-distropkg
|
||||
chmod +x _temp_full/bin/dms-distropkg
|
||||
fi
|
||||
|
||||
# Create INSTALL.md
|
||||
cat > _temp_full/INSTALL.md << 'EOF'
|
||||
# DankMaterialShell Installation
|
||||
@@ -176,7 +166,7 @@ jobs:
|
||||
cp -r dms ~/.config/quickshell/
|
||||
```
|
||||
|
||||
2. **Install the DMS CLI binaries:**
|
||||
2. **Install the DMS CLI binary:**
|
||||
```bash
|
||||
sudo install -m 755 bin/dms /usr/local/bin/dms
|
||||
# or install to a local directory:
|
||||
@@ -204,8 +194,11 @@ jobs:
|
||||
- Ensure all dependencies are installed
|
||||
EOF
|
||||
|
||||
# Create the full package
|
||||
(cd _temp_full && tar -czf "../_release_assets/dms-full-${arch}.tar.gz" .)
|
||||
# Create the full package with proper RPM structure (dms-VERSION/ top-level directory)
|
||||
mkdir -p dms-${TAG}
|
||||
cp -r _temp_full/* dms-${TAG}/
|
||||
tar -czf _release_assets/dms-full-${arch}.tar.gz dms-${TAG}
|
||||
rm -rf dms-${TAG}
|
||||
|
||||
# Generate checksum
|
||||
(cd _release_assets && sha256sum "dms-full-${arch}.tar.gz" > "dms-full-${arch}.tar.gz.sha256")
|
||||
@@ -221,3 +214,109 @@ jobs:
|
||||
files: _release_assets/**
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Setup RPM build environment
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y rpm wget curl jq
|
||||
|
||||
# Setup rpmbuild tree
|
||||
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
|
||||
|
||||
- name: Prepare RPM sources
|
||||
run: |
|
||||
cd ~/rpmbuild/SOURCES
|
||||
VERSION="${{ env.TAG }}"
|
||||
|
||||
# Copy the full packages (already have proper RPM structure)
|
||||
cp _release_assets/dms-full-amd64.tar.gz dms-${VERSION}-amd64.tar.gz
|
||||
cp _release_assets/dms-full-arm64.tar.gz dms-${VERSION}-arm64.tar.gz
|
||||
|
||||
echo "✅ Prepared tarballs for RPM"
|
||||
ls -lh ~/rpmbuild/SOURCES/
|
||||
|
||||
- name: Create RPM spec file
|
||||
run: |
|
||||
VERSION="${{ env.TAG }}"
|
||||
|
||||
cat > ~/rpmbuild/SPECS/dms.spec << 'SPECFILE'
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: dms
|
||||
Version: VERSION_PLACEHOLDER
|
||||
Release: 1%{?dist}
|
||||
Summary: Dank Material Shell - Modern desktop environment
|
||||
License: GPL-3.0-or-later
|
||||
URL: https://github.com/AvengeMedia/DankMaterialShell
|
||||
|
||||
Source0: dms-VERSION_PLACEHOLDER-amd64.tar.gz
|
||||
Source1: dms-VERSION_PLACEHOLDER-arm64.tar.gz
|
||||
|
||||
BuildArch: %{_arch}
|
||||
|
||||
Requires: qt6-qtbase
|
||||
Requires: qt6-qtdeclarative
|
||||
Requires: qt6-qtwayland
|
||||
Requires: quickshell
|
||||
|
||||
%description
|
||||
Dank Material Shell is a modern, Material Design-inspired desktop environment
|
||||
for Linux systems built with Qt6 and QML. It provides a complete shell experience
|
||||
with dynamic theming, plugin support, and integration with Wayland compositors.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
# Pre-compiled binaries, no build step needed
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
mkdir -p %{buildroot}%{_datadir}/quickshell/dms
|
||||
|
||||
# Install DMS CLI binary for current architecture
|
||||
if [ -f bin/dms ]; then
|
||||
install -m 755 bin/dms %{buildroot}%{_bindir}/dms
|
||||
fi
|
||||
|
||||
# Install QML/data files
|
||||
if [ -d dms ]; then
|
||||
cp -r dms/* %{buildroot}%{_datadir}/quickshell/dms/
|
||||
fi
|
||||
|
||||
# Install documentation
|
||||
if [ -f INSTALL.md ]; then
|
||||
mkdir -p %{buildroot}%{_docdir}/%{name}
|
||||
install -m 644 INSTALL.md %{buildroot}%{_docdir}/%{name}/
|
||||
fi
|
||||
|
||||
%files
|
||||
%{_bindir}/dms
|
||||
%{_datadir}/quickshell/dms/
|
||||
%doc %{_docdir}/%{name}/INSTALL.md
|
||||
|
||||
%changelog
|
||||
* CHANGELOG_DATE_PLACEHOLDER GitHub Actions <noreply@github.com> - VERSION_PLACEHOLDER-1
|
||||
- Automated build from release VERSION_PLACEHOLDER
|
||||
SPECFILE
|
||||
|
||||
# Replace placeholders
|
||||
CHANGELOG_DATE=$(date '+%a %b %d %Y')
|
||||
sed -i "s/VERSION_PLACEHOLDER/$VERSION/g" ~/rpmbuild/SPECS/dms.spec
|
||||
sed -i "s/CHANGELOG_DATE_PLACEHOLDER/$CHANGELOG_DATE/g" ~/rpmbuild/SPECS/dms.spec
|
||||
|
||||
- name: Build SRPM
|
||||
run: |
|
||||
cd ~/rpmbuild/SPECS
|
||||
rpmbuild -bs dms.spec
|
||||
|
||||
echo "✅ SRPM built successfully"
|
||||
ls -lh ~/rpmbuild/SRPMS/
|
||||
|
||||
- name: Upload to Copr
|
||||
if: success()
|
||||
run: |
|
||||
cd ~/rpmbuild/SRPMS
|
||||
copr-cli build dms dms-*.src.rpm
|
||||
|
||||
echo "✅ Uploaded to Copr successfully"
|
||||
|
||||
Reference in New Issue
Block a user