Repository navigation
131 lines (116 loc) · 3.52 KB
/
Copy pathlinux.yml
File metadata and controls
131 lines (116 loc) · 3.52 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
name: Linux AppImage x64
on:
workflow_dispatch:
# push:
# branches: [ 'test/gh-ci' ]
permissions:
actions: write
contents: read
defaults:
run:
shell: bash
env:
VCPKG_ROOT: "${{ github.workspace }}/vcpkg"
jobs:
build:
# Try to use the lowest version available.
# - https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#choosing-github-hosted-runners
runs-on: ubuntu-22.04
steps:
# vcpkg deps, OpenGL & GLU, GLEW deps, SDL2 deps, AppImage deps (FUSE)
# - https://github.com/libsdl-org/SDL/blob/SDL2/docs/README-linux.md
# - https://github.com/AppImage/AppImageKit/wiki/FUSE
# - TODO: On Ubuntu >= 24.04, use `libfuse2t64` instead of `libfuse2`.
- name: Install sys deps
run: |
sudo apt-get update -y
sudo apt-get install -y \
appstream \
autoconf \
automake \
bash \
build-essential \
cmake \
curl \
fcitx-libs-dev \
git \
gnome-desktop-testing \
libasound2-dev \
libaudio-dev \
libdbus-1-dev \
libdecor-0-dev \
libdrm-dev \
libegl1-mesa-dev \
libfuse2 \
libgbm-dev \
libgl-dev \
libgl1-mesa-dev \
libgles2-mesa-dev \
libglu1-mesa-dev \
libibus-1.0-dev \
libjack-dev \
libltdl-dev \
libpipewire-0.3-dev \
libpulse-dev \
libsamplerate0-dev \
libsndio-dev \
libtool \
libudev-dev \
libwayland-dev \
libx11-dev \
libxcursor-dev \
libxext-dev \
libxfixes-dev \
libxft-dev \
libxi-dev \
libxkbcommon-dev \
libxmu-dev \
libxrandr-dev \
libxss-dev \
make \
ninja-build \
pkg-config \
tar \
unzip \
zip
- name: Check out repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install CMake & Ninja
uses: lukka/get-cmake@latest
- name: Install vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgDirectory: "${{ env.VCPKG_ROOT }}"
vcpkgJsonGlob: 'vcpkg.json'
- name: Configure build
run: >
cmake --preset default
-DVCPKG_BUILD_TYPE=release
-DEKO_LINUXDEPLOY_ARCH="x86_64"
-DEKO_PKG_SUFFIX="-x64"
- name: Build
run: cmake --build --preset default --config Release --verbose
- name: Build AppImage
run: cmake --build --preset default --config Release --target appimage
# This is no longer needed, since AppImage now replaced glibc with musl libc and is statically linked.
# - name: Check min glibc version required (highest version number)
# run: >
# objdump -T build/AppImage/*.AppImage
# | grep -i glibc
# | grep -oP '[0-9]+\.[0-9.]+'
# | sort -uV
- name: Package up
run: cmake --build --preset default --config Release --target package
- name: Upload package
uses: actions/upload-artifact@v4
with:
name: linux-appimage-x64
path: |
build/*.tar.gz
build/*.sha256
if-no-files-found: error
compression-level: 0
overwrite: true
include-hidden-files: false