This repository was archived by the owner on Mar 20, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
208 lines (167 loc) · 5.36 KB
/
build.yml
File metadata and controls
208 lines (167 loc) · 5.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
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 }}