forked from Tulip-Dev/tulip
-
Notifications
You must be signed in to change notification settings - Fork 1
108 lines (108 loc) · 4.26 KB
/
appimage-build.yml
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
name: appimage-build
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
appimage:
name: ${{ matrix.config.name }}
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
config:
- name: Talipot AppImage build on CentOS 8 Stream
docker-image: tgagor/centos-stream:8
centos-version: centos8
- name: Talipot AppImage build on CentOS 9 Stream
docker-image: dokken/centos-stream-9
centos-version: centos9
steps:
- name: Checkout Talipot code
uses: actions/checkout@v4
- name: Get current date
id: get-current-date
run: |
echo "date=$(date -u "+%Y-%m-%d-%H-%m-%S")" >> $GITHUB_OUTPUT
shell: bash
- name: Cache files
uses: actions/cache@v4
with:
path: ~/ccache
key: appimage-${{ matrix.config.docker-image }}-ccache-${{ steps.get-current-date.outputs.date }}
restore-keys: |
appimage-${{ matrix.config.docker-image }}-ccache-
save-always: true
- name: Pull ${{ matrix.config.docker-image }} docker image
run: docker pull ${{ matrix.config.docker-image }}
- name: Create ccache docker volume
run: docker create
-v ~/ccache:/ccache
--name ccache
${{ matrix.config.docker-image }}
- name: Build Talipot AppImage on CentOS
run: docker run
-e CCACHE_DIR=/ccache
--volumes-from ccache
--device /dev/fuse
--privileged
-v `pwd`:/talipot:rw
${{ matrix.config.docker-image }}
/bin/bash -c "bash -xe /talipot/bundlers/linux/talipot_appimage_centos_build.sh"
- name: Install required dependencies to run AppImage
run: |
sudo apt update
sudo apt install qtbase5-dev libpipewire-0.3-0 xvfb libfuse2
shell: bash
- name: Check Talipot AppImage can be executed on Ubuntu
working-directory: ./build
run: xvfb-run bash -c "./$(ls Talipot*.AppImage) --check-application-starts --debug-plugins-load"
- name: Check Talipot AppImage can be executed on Fedora
uses: addnab/docker-run-action@v3
with:
image: fedora
shell: bash
options: --device /dev/fuse --privileged
-v ${{ github.workspace }}:/talipot:rw
run: |
dnf group install -y gnome-desktop
yum install -y xorg-x11-server-Xvfb libglvnd-opengl
xvfb-run $(ls /talipot/build/Talipot*.AppImage) --check-application-starts --debug-plugins-load
- name: Check Talipot AppImage can be executed on ArchLinux
uses: addnab/docker-run-action@v3
with:
image: archlinux
shell: bash
options: --device /dev/fuse --privileged
-v ${{ github.workspace }}:/talipot:rw
run: |
until pacman -Syu --noconfirm fuse gnome qt5-base xorg-server-xvfb
do
echo "Some packages could not be downloaded, retrying"
done
xvfb-run $(ls /talipot/build/Talipot*.AppImage) --check-application-starts --debug-plugins-load
- name: Check Talipot AppImage can be executed on openSUSE
uses: addnab/docker-run-action@v3
with:
image: opensuse/tumbleweed
shell: bash
options: --device /dev/fuse --privileged
-v ${{ github.workspace }}:/talipot:rw
run: |
zypper install -y -t pattern kde kde_plasma
zypper install -y fuse-devel xvfb-run
xvfb-run $(ls /talipot/build/Talipot*.AppImage) --check-application-starts --debug-plugins-load
- name: Upload Taliot AppImage to GitHub Actions artifacts
uses: actions/upload-artifact@v4
with:
name: Talipot-AppImage-${{ matrix.config.centos-version }}
path: ./build/Talipot*.AppImage
- name: Upload Talipot bundle to dev-latest prerelease
if: github.ref == 'refs/tags/dev-latest'
uses: ncipollo/release-action@v1
with:
allowUpdates: true
name: Talipot development build
prerelease: true
artifacts: ./build/Talipot*.AppImage
token: ${{ secrets.GITHUB_TOKEN }}