Skip to content

Remove GTK styling support #139

Remove GTK styling support

Remove GTK styling support #139

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
build-linux:
strategy:
matrix:
include:
- os: ubuntu-latest
arch: amd64
- os: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '1.23'
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '22'
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev pkg-config
- name: Install Wails CLI
run: go install github.com/wailsapp/wails/v2/cmd/wails@v2.11.0
- name: Update version from tag
run: |
VERSION="${GITHUB_REF_NAME#v}"
cd frontend && npm version "$VERSION" --no-git-tag-version
- name: Build
run: |
VERSION="${GITHUB_REF_NAME#v}"
wails build -tags webkit2_41 -ldflags "-X aether/cli.Version=$VERSION"
- name: Prepare release artifact
run: |
mv build/bin/aether build/bin/aether-linux-${{ matrix.arch }}
chmod +x build/bin/aether-linux-${{ matrix.arch }}
- name: Build .deb package
env:
VERSION: ${{ github.ref_name }}
ARCH: ${{ matrix.arch }}
run: |
PKG_VERSION="${VERSION#v}"
PKG_DIR="aether_${PKG_VERSION}_${ARCH}"
mkdir -p "${PKG_DIR}/DEBIAN"
mkdir -p "${PKG_DIR}/usr/bin"
mkdir -p "${PKG_DIR}/usr/share/applications"
mkdir -p "${PKG_DIR}/usr/share/icons/hicolor/512x512/apps"
mkdir -p "${PKG_DIR}/usr/share/pixmaps"
cp "build/bin/aether-linux-${ARCH}" "${PKG_DIR}/usr/bin/aether"
chmod 755 "${PKG_DIR}/usr/bin/aether"
cp build/linux/aether.desktop "${PKG_DIR}/usr/share/applications/"
cp li.oever.aether.url-handler.desktop "${PKG_DIR}/usr/share/applications/"
cp icon.png "${PKG_DIR}/usr/share/pixmaps/aether.png"
cp assets/aether-icon-512.png "${PKG_DIR}/usr/share/icons/hicolor/512x512/apps/aether.png"
cat > "${PKG_DIR}/DEBIAN/control" <<'CTRL'
Package: aether
Version: PKGVER
Architecture: PKGARCH
Maintainer: Bjarne Øverli <bjarne.oeverli@gmail.com>
Depends: libwebkit2gtk-4.1-0, libgtk-3-0
Description: Desktop theming application
Extract colors from wallpapers and apply cohesive themes across your
desktop.
Homepage: https://github.com/bjarneo/aether
CTRL
sed -i 's/^ //' "${PKG_DIR}/DEBIAN/control"
sed -i "s/PKGVER/${PKG_VERSION}/" "${PKG_DIR}/DEBIAN/control"
sed -i "s/PKGARCH/${ARCH}/" "${PKG_DIR}/DEBIAN/control"
dpkg-deb --build "${PKG_DIR}"
mv "${PKG_DIR}.deb" "build/bin/"
- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: aether-linux-${{ matrix.arch }}
path: |
build/bin/aether-linux-${{ matrix.arch }}
build/bin/aether_*.deb
release:
needs: build-linux
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Download all artifacts
uses: actions/download-artifact@v8
with:
path: artifacts
- name: Generate Changelog
id: changelog
env:
GH_TOKEN: ${{ github.token }}
TAG_NAME: ${{ github.ref_name }}
GITHUB_REPO: ${{ github.repository }}
run: |
PREVIOUS_TAG=$(git tag --sort=-version:refname | grep -v "^${TAG_NAME}$" | head -n 1)
if [ -z "$PREVIOUS_TAG" ]; then
PREVIOUS_TAG=$(git rev-list --max-parents=0 HEAD)
fi
CHANGELOG=""
while IFS='|' read -r hash title author email || [ -n "$hash" ]; do
short_hash="${hash:0:7}"
username=$(gh api "repos/${GITHUB_REPO}/commits/$hash" --jq '.author.login' 2>/dev/null || echo "")
if [ -n "$username" ]; then
author_info="$author (@$username)"
else
author_info="$author"
fi
if [[ "$title" =~ ^Merge\ pull\ request\ \#([0-9]+) ]]; then
pr_number="${BASH_REMATCH[1]}"
pr_title=$(gh pr view "$pr_number" --json title --jq '.title' 2>/dev/null || echo "$title")
CHANGELOG="${CHANGELOG}- $pr_title (#$pr_number) by $author_info ([\`$short_hash\`](https://github.com/${GITHUB_REPO}/commit/$hash))"$'\n'
else
CHANGELOG="${CHANGELOG}- $title by $author_info ([\`$short_hash\`](https://github.com/${GITHUB_REPO}/commit/$hash))"$'\n'
fi
done < <(git log "$PREVIOUS_TAG".."$TAG_NAME" --pretty=format:"%H|%s|%an|%ae")
echo "$CHANGELOG" > changelog.md
echo "changelog<<EOF" >> "$GITHUB_OUTPUT"
echo "$CHANGELOG" >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
- name: Calculate SHA256 of source archive
id: archive
env:
TAG_NAME: ${{ github.ref_name }}
GITHUB_REPO: ${{ github.repository }}
run: |
wget -q "https://github.com/${GITHUB_REPO}/archive/${TAG_NAME}.tar.gz"
SHA256=$(sha256sum "${TAG_NAME}.tar.gz" | awk '{print $1}')
echo "sha256=$SHA256" >> "$GITHUB_OUTPUT"
echo "pkgver=${TAG_NAME#v}" >> "$GITHUB_OUTPUT"
- name: Create Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: false
files: |
artifacts/aether-linux-amd64/aether-linux-amd64
artifacts/aether-linux-amd64/*.deb
artifacts/aether-linux-arm64/aether-linux-arm64
artifacts/aether-linux-arm64/*.deb
body: |
## What's Changed
${{ steps.changelog.outputs.changelog }}
## Installation
### Arch Linux (AUR)
```bash
yay -S aether
```
### Debian / Ubuntu (x86_64)
```bash
wget https://github.com/bjarneo/aether/releases/download/${{ github.ref_name }}/aether_${{ steps.archive.outputs.pkgver }}_amd64.deb
sudo dpkg -i aether_${{ steps.archive.outputs.pkgver }}_amd64.deb
sudo apt-get install -f
```
### Debian / Ubuntu (aarch64)
```bash
wget https://github.com/bjarneo/aether/releases/download/${{ github.ref_name }}/aether_${{ steps.archive.outputs.pkgver }}_arm64.deb
sudo dpkg -i aether_${{ steps.archive.outputs.pkgver }}_arm64.deb
sudo apt-get install -f
```
### Pre-built Binary (x86_64)
```bash
wget https://github.com/bjarneo/aether/releases/download/${{ github.ref_name }}/aether-linux-amd64
chmod +x aether-linux-amd64
sudo mv aether-linux-amd64 /usr/local/bin/aether
```
### Pre-built Binary (aarch64)
```bash
wget https://github.com/bjarneo/aether/releases/download/${{ github.ref_name }}/aether-linux-arm64
chmod +x aether-linux-arm64
sudo mv aether-linux-arm64 /usr/local/bin/aether
```
### Build from Source
Requires Go 1.23+, Node.js 22+, and [Wails](https://wails.io/docs/gettingstarted/installation).
```bash
git clone https://github.com/bjarneo/aether.git
cd aether
make build
```
---
**SHA256 (source archive, for PKGBUILD):**
```
${{ steps.archive.outputs.sha256 }}
```