This repository was archived by the owner on Mar 20, 2026. It is now read-only.
feat(pkg): add NurOS APG package support #13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Package | |
| on: | |
| push: | |
| branches: [main] | |
| tags: | |
| - "v*" | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| build-arch: | |
| name: Build Arch Linux Package | |
| runs-on: ubuntu-latest | |
| container: | |
| image: archlinux:latest | |
| steps: | |
| - name: Update system | |
| run: | | |
| pacman -Syu --noconfirm | |
| pacman -S --noconfirm base-devel git | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| pacman -S --noconfirm gtk4 libadwaita vte4 vala meson ninja | |
| - name: Build package with makepkg | |
| run: | | |
| cd packaging | |
| # Create non-root user for makepkg | |
| useradd -m builder | |
| chown -R builder:builder .. | |
| # Build package as builder user | |
| su builder -c "makepkg -s --noconfirm" | |
| mv *.pkg.tar.zst ../ | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: aether-command-arch | |
| path: "*.pkg.tar.zst" | |
| build-fedora: | |
| name: Build Fedora RPM | |
| runs-on: ubuntu-latest | |
| container: | |
| image: fedora:latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| dnf install -y gtk4-devel libadwaita-devel vte291-gtk4-devel vala meson ninja-build gcc git rpm-build rpmdevtools tar gzip | |
| - name: Setup RPM build tree | |
| run: | | |
| rpmdev-setuptree | |
| cp packaging/aether-command.spec ~/rpmbuild/SPECS/ | |
| - name: Create source tarball | |
| run: | | |
| tar --transform='s,^\.,command-0.1.0~alpha,' -czf ~/rpmbuild/SOURCES/v0.1.0~alpha.tar.gz --exclude='.git' --exclude='builddir' --exclude='.github' . | |
| - name: Build RPM | |
| run: | | |
| rpmbuild -ba ~/rpmbuild/SPECS/aether-command.spec | |
| - name: Copy RPM to workspace | |
| run: | | |
| cp ~/rpmbuild/RPMS/*/*.rpm . | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: aether-command-fedora | |
| path: "*.rpm" | |
| build-ubuntu: | |
| name: Build Ubuntu DEB | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential libgtk-4-dev libadwaita-1-dev libvte-2.91-gtk4-dev valac meson ninja-build debhelper devscripts | |
| - name: Build DEB package | |
| run: | | |
| dpkg-buildpackage -us -uc -b | |
| - name: Move DEB to workspace | |
| run: | | |
| mv ../*.deb . | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: aether-command-ubuntu | |
| path: "*.deb" | |
| build-apg: | |
| name: Build NurOS APG | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential libgtk-4-dev libadwaita-1-dev libvte-2.91-gtk4-dev valac meson ninja-build | |
| - name: Build project | |
| run: | | |
| meson setup builddir --prefix=/usr | |
| ninja -C builddir | |
| - name: Build APG package | |
| run: | | |
| # Prepare APG build directory | |
| mkdir -p apg-build/data | |
| # Install files | |
| DESTDIR="${PWD}/apg-build/data" ninja -C builddir install | |
| # Copy metadata | |
| cp packaging/apg/metadata.json apg-build/ | |
| # Generate md5sums | |
| cd apg-build | |
| find data -type f -exec md5sum {} \; > md5sums | |
| # Create APG package | |
| tar -czf ../aether-command-0.1.0-alpha-x86_64.apg metadata.json md5sums data/ | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: aether-command-apg | |
| path: "*.apg" | |
| release: | |
| name: Create Release | |
| needs: [build-arch, build-fedora, build-ubuntu, build-apg] | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| steps: | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: | | |
| aether-command-arch/*.pkg.tar.zst | |
| aether-command-fedora/*.rpm | |
| aether-command-ubuntu/*.deb | |
| aether-command-apg/*.apg | |
| draft: false | |
| prerelease: true | |
| body: | | |
| ## Aether Command v0.1.0-alpha | |
| Initial alpha release of Aether Command terminal emulator. | |
| ### Features | |
| - Dynamic window title tracking | |
| - Tab support for multiple terminals | |
| - Copy/paste keyboard shortcuts (Ctrl+Shift+C/V) | |
| - Right-click context menu | |
| - GTK4 and LibAdwaita integration | |
| - Full VTE terminal emulation | |
| ### Installation | |
| **Arch Linux:** | |
| ```bash | |
| sudo pacman -U aether-command-*.pkg.tar.zst | |
| ``` | |
| **Fedora:** | |
| ```bash | |
| sudo dnf install aether-command-*.rpm | |
| ``` | |
| **Ubuntu/Debian:** | |
| ```bash | |
| sudo apt install ./aether-command_*.deb | |
| ``` | |
| **NurOS:** | |
| ```bash | |
| tulpar install aether-command-*.apg | |
| ``` | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |