Skip to content

Commit 0c5546b

Browse files
author
psadi
committed
ci: switch base build to arch
1 parent c20eb5e commit 0c5546b

File tree

4 files changed

+44
-49
lines changed

4 files changed

+44
-49
lines changed

.github/workflows/ci.yaml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
platform: linux/amd64
2525
runs-on: ubuntu-24.04
2626
container:
27-
image: ${{ matrix.arch == 'aarch64' && 'arm64v8/ubuntu:24.04' || 'ubuntu:24.04' }}
27+
image: ghcr.io/pkgforge-dev/archlinux:latest
2828
options: "--privileged --cap-add SYS_ADMIN --device /dev/fuse"
2929
steps:
3030
- name: Checkout ghostty-appimage
@@ -37,12 +37,9 @@ jobs:
3737
uses: actions/cache@v4
3838
with:
3939
path: |
40-
/var/cache/apt/archives
41-
/var/lib/apt/lists
40+
/var/cache/pacman
4241
/tmp/offline-cache
43-
/usr/local/bin/appimagetool
44-
/usr/local/bin/minisign
45-
/usr/local/bin/zig
42+
/usr/local/bin
4643
/opt
4744
key: ${{ runner.os }}-${{ matrix.arch }}-ghostty-${{ hashFiles('**/setup.sh') }}
4845
restore-keys: |

VERSION

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1.1.0

build.sh

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,7 @@ set -e
44

55
export ARCH="$(uname -m)"
66

7-
GHOSTTY_VERSION="1.1.0"
8-
9-
# Detect latest version numbers when jq is available.
10-
if command -v jq >/dev/null 2>&1; then
11-
if [ "$1" = "latest" ]; then
12-
GHOSTTY_VERSION="$(
13-
curl -s https://api.github.com/repos/ghostty-org/ghostty/tags |
14-
jq '[.[] | select(.name != "tip") | .name | ltrimstr("v")] | sort_by(split(".") | map(tonumber)) | last'
15-
)"
16-
fi
17-
fi
18-
7+
GHOSTTY_VERSION="$(cat VERSION)"
198
TMP_DIR="/tmp/ghostty-build"
209
APP_DIR="${TMP_DIR}/ghostty.AppDir"
2110
PUB_KEY="RWQlAjJC23149WL2sEpT/l0QKy7hMIFhYdQOFy0Z7z7PbneUgvlsnYcV"
@@ -77,7 +66,7 @@ case "${ARCH}" in
7766
;;
7867
esac
7968

80-
cp -v /usr/lib/${ARCH}-linux-gnu/libpthread.so.0 ./usr/lib
69+
cp -v /usr/lib/libpthread.so.0 ./usr/lib
8170

8271
if ! mv ./usr/lib/${ld_linux} ./ld-linux.so; then
8372
cp -v /usr/lib/${ARCH}-linux-gnu/${ld_linux} ./ld-linux.so

setup.sh

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,43 @@
22

33
set -e
44

5-
export DEBIAN_FRONTEND="noninteractive"
65
export ARCH="$(uname -m)"
76

87
ZIG_VERSION="0.13.0"
9-
MINISIGN_URL="https://github.com/jedisct1/minisign/releases/download/0.11/minisign-0.11-linux.tar.gz"
8+
PANDOC_VERSION="3.6.3"
9+
MINISIGN_VERSION="0.11"
1010

11-
# Detect latest version numbers when jq is available.
12-
if command -v jq >/dev/null 2>&1; then
13-
if [ "$1" = "latest" ]; then
14-
ZIG_VERSION="$(
15-
curl -s "https://ziglang.org/download/index.json" |
16-
jq -r '[keys[] | select(. != "master" and contains("."))] | sort_by(split(".") | map(tonumber)) | last'
17-
)"
18-
MINISIGN_URL="$(
19-
curl -s "https://api.github.com/repos/jedisct1/minisign/releases/latest" |
20-
jq -r --arg prefix "minisign" --arg suffix "linux.tar.gz" \
21-
'.assets[] | select(.name | startswith($prefix) and endswith($suffix)) | .browser_download_url'
22-
)"
23-
fi
24-
fi
11+
PANDOC_BASE="https://github.com/jgm/pandoc/releases/download/${PANDOC_VERSION}"
12+
MINISIGN_URL="https://github.com/jedisct1/minisign/releases/download/${MINISIGN_VERSION}/minisign-${MINISIGN_VERSION}-linux.tar.gz"
13+
APPIMAGE_URL="https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-${ARCH}.AppImage"
14+
ZIG_URL="https://ziglang.org/download/${ZIG_VERSION}/zig-linux-${ARCH}-${ZIG_VERSION}.tar.xz"
15+
16+
case "${ARCH}" in
17+
"x86_64")
18+
PANDOC_URL="${PANDOC_BASE}/pandoc-${PANDOC_VERSION}-linux-amd64.tar.gz"
19+
;;
20+
"aarch64")
21+
PANDOC_URL="${PANDOC_BASE}/pandoc-${PANDOC_VERSION}-linux-arm64.tar.gz"
22+
;;
23+
*)
24+
echo "Unsupported ARCH: '${ARCH}'"
25+
exit 1
26+
;;
27+
esac
28+
29+
rm -rf "/usr/share/libalpm/hooks/package-cleanup.hook"
2530

2631
# Update & install OS base dependencies
27-
rm /etc/apt/apt.conf.d/docker-clean
28-
buildPkgs="apt-utils build-essential libonig-dev libbz2-dev pandoc wget fuse libfuse2t64 file zsync appstream"
29-
ghosttyPkgs="libgtk-4-dev libadwaita-1-dev"
30-
apt-get -qq update && apt-get -qq -y upgrade
31-
apt-get -qq -y --download-only install ${buildPkgs} ${ghosttyPkgs}
32-
apt -qq -y install ${buildPkgs} ${ghosttyPkgs}
32+
buildPkgs="base-devel freetype2 oniguruma wget fuse file zsync appstream"
33+
ghosttyPkgs="gtk4 libadwaita"
34+
pacman -Syu --noconfirm
35+
pacman -Syw --noconfirm ${buildPkgs} ${ghosttyPkgs}
36+
pacman -Syq --needed --noconfirm ${buildPkgs} ${ghosttyPkgs}
3337

3438
# Download & install other dependencies
3539
# appimagetool: https://github.com/AppImage/appimagetool
3640
if [ ! -f '/usr/local/bin/appimagetool' ]; then
37-
wget -q "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-${ARCH}.AppImage" -O /tmp/appimagetool.AppImage
41+
wget -q "${APPIMAGE_URL}" -O /tmp/appimagetool.AppImage
3842
chmod +x /tmp/appimagetool.AppImage
3943
mv /tmp/appimagetool.AppImage /usr/local/bin/appimagetool
4044
fi
@@ -48,17 +52,21 @@ fi
4852

4953
# zig: https://ziglang.org
5054
if [ ! -d "/opt/zig-linux-${ARCH}-${ZIG_VERSION}" ]; then
51-
wget -q "https://ziglang.org/download/${ZIG_VERSION}/zig-linux-${ARCH}-${ZIG_VERSION}.tar.xz" -O /tmp/zig-linux.tar.xz
55+
wget -q "${ZIG_URL}" -O /tmp/zig-linux.tar.xz
5256
tar -xf /tmp/zig-linux.tar.xz -C /opt
5357
ln -s "/opt/zig-linux-${ARCH}-${ZIG_VERSION}/zig" /usr/local/bin/zig
5458
fi
5559

60+
# pandoc: https://github.com/jgm/pandoc
61+
if [ ! -f '/usr/local/bin/pandoc' ]; then
62+
wget -q "${PANDOC_URL}" -O /tmp/pandoc-linux.tar.gz
63+
tar -xzf /tmp/pandoc-linux.tar.gz -C /tmp
64+
mv /tmp/"pandoc-${PANDOC_VERSION}"/bin/* /usr/local/bin
65+
fi
66+
5667
# Cleanup
5768
rm -rf \
5869
/tmp/appimagetool.AppImage \
59-
/tmp/minisign-linux.tar.gz \
60-
/tmp/minisign-linux \
61-
/tmp/zig-linux.tar.xz
62-
63-
# Reset DEBIAN_FRONTEND to default
64-
unset DEBIAN_FRONTEND
70+
/tmp/minisign-linux* \
71+
/tmp/zig-linux.tar.xz \
72+
/tmp/pandoc*

0 commit comments

Comments
 (0)