Skip to content

cpp: Use better hash map implementation in whole talipot codebase #1129

cpp: Use better hash map implementation in whole talipot codebase

cpp: Use better hash map implementation in whole talipot codebase #1129

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 }}