Skip to content

Fix dock icon: add StartupWMClass, set_default_icon_name, icon cache #16

Fix dock icon: add StartupWMClass, set_default_icon_name, icon cache

Fix dock icon: add StartupWMClass, set_default_icon_name, icon cache #16

Workflow file for this run

name: Linux (GTK4)
on:
push:
branches: [main]
tags: ['v*']
pull_request:
branches: [main]
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.lock') }}
- name: Install GTK4 + libadwaita dev dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-4-dev libadwaita-1-dev
- name: Test all crates
run: cargo test --workspace
build-binary:
name: Build binary (x86_64)
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install GTK4 + libadwaita dev dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-4-dev libadwaita-1-dev
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-release-${{ hashFiles('**/Cargo.lock') }}
- name: Build release binary
run: cargo build --release -p dm-gtk
- name: Strip binary
run: strip target/release/diskmap
- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: diskmap-linux-x86_64
path: target/release/diskmap
build-deb:
name: Build .deb package
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install GTK4 + libadwaita dev dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-4-dev libadwaita-1-dev
- name: Install cargo-deb
run: cargo install cargo-deb
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-deb-${{ hashFiles('**/Cargo.lock') }}
- name: Build .deb
run: cargo deb -p dm-gtk
- name: Upload .deb
uses: actions/upload-artifact@v4
with:
name: diskmap-deb
path: target/debian/*.deb
build-flatpak:
name: Build Flatpak
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Vendor cargo dependencies
run: cargo vendor
- name: Install Flatpak and flatpak-builder
run: |
sudo apt-get update
sudo apt-get install -y flatpak flatpak-builder
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y flathub org.gnome.Platform//48 org.gnome.Sdk//48
sudo flatpak install -y flathub org.freedesktop.Sdk.Extension.rust-stable//24.08
- name: Build Flatpak
working-directory: ./packaging
run: |
flatpak-builder --force-clean --repo=repo builddir com.finndevs.diskmap.yml
flatpak build-bundle repo diskmap.flatpak com.finndevs.diskmap
- name: Upload Flatpak
uses: actions/upload-artifact@v4
with:
name: diskmap-flatpak
path: packaging/diskmap.flatpak
release:
name: Release
runs-on: ubuntu-latest
needs: [build-binary, build-deb, build-flatpak]
if: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
path: artifacts
- name: List artifacts
run: find artifacts -type f
- name: Extract version from tag
id: version
run: echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Generate changelog
id: changelog
run: |
# Get commits since last tag
PREV_TAG=$(git tag --sort=-version:refname | head -2 | tail -1)
if [ -z "$PREV_TAG" ] || [ "$PREV_TAG" = "${{ steps.version.outputs.version }}" ]; then
CHANGES="Initial release"
else
CHANGES=$(git log ${PREV_TAG}..HEAD --pretty=format:"- %s" --no-merges)
fi
echo "changes<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.version.outputs.version }}
name: DiskMap ${{ steps.version.outputs.version }}
body: |
## What's Changed
${{ steps.changelog.outputs.changes }}
## Downloads
| Format | File | Notes |
|--------|------|-------|
| Binary | `diskmap` | Requires GTK4 + libadwaita installed |
| Debian | `.deb` | For Debian, Ubuntu, Mint |
| Flatpak | `.flatpak` | For any Linux distro |
## Install
```bash
# Debian/Ubuntu
sudo dpkg -i diskmap_*.deb
# Binary
chmod +x diskmap && ./diskmap
```
---
(c) 2026 Finn Devs LLC. All rights reserved.
draft: false
files: |
artifacts/diskmap-linux-x86_64/diskmap
artifacts/diskmap-deb/*.deb
artifacts/diskmap-flatpak/diskmap.flatpak