mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 13:32:50 -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
|
## Assets
|
||||||
|
|
||||||
### Complete Packages
|
### Complete Packages
|
||||||
- **`dms-full-amd64.tar.gz`** - Complete package for x86_64 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 binaries + QML source + installation guide)
|
- **`dms-full-arm64.tar.gz`** - Complete package for ARM64 systems (CLI binary + QML source + installation guide)
|
||||||
|
|
||||||
### Individual Components
|
### Individual Components
|
||||||
- **`dms-cli-amd64.gz`** - DMS CLI binary for x86_64 systems
|
- **`dms-cli-amd64.gz`** - DMS CLI binary for x86_64 systems
|
||||||
- **`dms-cli-arm64.gz`** - DMS CLI binary for ARM64 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
|
- **`dms-qml.tar.gz`** - QML source code only
|
||||||
|
|
||||||
### Checksums
|
### Checksums
|
||||||
@@ -114,16 +112,14 @@ jobs:
|
|||||||
# Download DMS CLI binaries from the danklinux repo
|
# Download DMS CLI binaries from the danklinux repo
|
||||||
gh release download "${TAG}" -R "${DMS_REPO}" --dir ./_dms_assets
|
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
|
for file in _dms_assets/dms-*.gz*; do
|
||||||
if [ -f "$file" ]; then
|
if [ -f "$file" ]; then
|
||||||
basename=$(basename "$file")
|
basename=$(basename "$file")
|
||||||
if [[ "$basename" == dms-distropkg-* ]]; then
|
# dms-amd64.gz -> dms-cli-amd64.gz
|
||||||
cp "$file" "_release_assets/$basename"
|
# dms-amd64.gz.sha256 -> dms-cli-amd64.gz.sha256
|
||||||
else
|
newname=$(echo "$basename" | sed 's/^dms-/dms-cli-/')
|
||||||
newname=$(echo "$basename" | sed 's/^dms-/dms-cli-/')
|
cp "$file" "_release_assets/$newname"
|
||||||
cp "$file" "_release_assets/$newname"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -152,12 +148,6 @@ jobs:
|
|||||||
chmod +x _temp_full/bin/dms
|
chmod +x _temp_full/bin/dms
|
||||||
fi
|
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
|
# Create INSTALL.md
|
||||||
cat > _temp_full/INSTALL.md << 'EOF'
|
cat > _temp_full/INSTALL.md << 'EOF'
|
||||||
# DankMaterialShell Installation
|
# DankMaterialShell Installation
|
||||||
@@ -176,7 +166,7 @@ jobs:
|
|||||||
cp -r dms ~/.config/quickshell/
|
cp -r dms ~/.config/quickshell/
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Install the DMS CLI binaries:**
|
2. **Install the DMS CLI binary:**
|
||||||
```bash
|
```bash
|
||||||
sudo install -m 755 bin/dms /usr/local/bin/dms
|
sudo install -m 755 bin/dms /usr/local/bin/dms
|
||||||
# or install to a local directory:
|
# or install to a local directory:
|
||||||
@@ -204,8 +194,11 @@ jobs:
|
|||||||
- Ensure all dependencies are installed
|
- Ensure all dependencies are installed
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Create the full package
|
# Create the full package with proper RPM structure (dms-VERSION/ top-level directory)
|
||||||
(cd _temp_full && tar -czf "../_release_assets/dms-full-${arch}.tar.gz" .)
|
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
|
# Generate checksum
|
||||||
(cd _release_assets && sha256sum "dms-full-${arch}.tar.gz" > "dms-full-${arch}.tar.gz.sha256")
|
(cd _release_assets && sha256sum "dms-full-${arch}.tar.gz" > "dms-full-${arch}.tar.gz.sha256")
|
||||||
@@ -221,3 +214,109 @@ jobs:
|
|||||||
files: _release_assets/**
|
files: _release_assets/**
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
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