Async GUI clipboard on Linux #798
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Clipboard Tests | |
on: [push, pull_request] | |
jobs: | |
ubuntu-gcc: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- version: 22.04 | |
no_lto: "0" | |
gcc: [ 11, 12 ] | |
x11: [ "1", "0" ] | |
wayland: [ "1", "0" ] | |
arch: | |
- os: i386 | |
gcc: i686-linux-gnu | |
- os: amd64 | |
gcc: x86_64-linux-gnu | |
runs-on: ubuntu-${{ matrix.os.version }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run a script | |
shell: 'script -q -e -c "bash --noprofile --norc -eo pipefail {0}"' | |
run: | | |
NO_X11=1 | |
NO_WAYLAND=1 | |
PACKAGES="g++-${{ matrix.gcc }}-${{ matrix.arch.gcc }}" | |
if [[ "${{ matrix.arch.gcc }}" == "$(uname --processor)-linux-gnu" ]]; then | |
PACKAGES="g++-${{ matrix.gcc }}" | |
fi | |
if [[ "${{ matrix.x11 }}" == "1" ]] | |
then | |
NO_X11=0 | |
PACKAGES="${PACKAGES} libx11-dev libx11-dev:${{ matrix.arch.os }} libgcc-s1:${{ matrix.arch.os }}" | |
fi | |
if [[ "${{ matrix.wayland }}" == "1" ]] | |
then | |
NO_WAYLAND=0 | |
PACKAGES="${PACKAGES} libwayland-dev libwayland-dev:${{ matrix.arch.os }} libgcc-s1:${{ matrix.arch.os }} wayland-protocols wayland-protocols:${{ matrix.arch.os }}" | |
fi | |
sudo dpkg --add-architecture "${{ matrix.arch.os }}" | |
sudo apt-get update | |
sudo apt-get upgrade -y | |
sudo apt-get install -y $PACKAGES xvfb sway xclip wl-clipboard squeekboard libasound-dev liburing-dev | |
cd build | |
cmake .. \ | |
"-DCMAKE_CXX_COMPILER=${{ matrix.arch.gcc }}-g++-${{ matrix.gcc }}" \ | |
"-DCMAKE_C_COMPILER=${{ matrix.arch.gcc }}-gcc-${{ matrix.gcc }}" \ | |
"-DNO_X11=${NO_X11}" \ | |
"-DNO_WAYLAND=${NO_WAYLAND}" \ | |
"-DNO_LTO=${{ matrix.os.no_lto }}" \ | |
"-DCMAKE_BUILD_TYPE=Debug" | |
cmake --build . -j 2 | |
sudo cmake --install . | |
export CLIPBOARD_TMPDIR=/tmp | |
export CLIPBOARD_REQUIREX11=${{ matrix.x11 }} | |
export CLIPBOARD_REQUIREWAYLAND=${{ matrix.wayland }} | |
export WLR_BACKENDS=headless | |
export WLR_LIBINPUT_NO_DEVICES=1 | |
export WAYLAND_DISPLAY=wayland-1 | |
export LIBGL_ALWAYS_SOFTWARE=1 | |
export XDG_RUNTIME_DIR=/tmp | |
sway -d & | |
sleep 5 | |
squeekboard & | |
stty rows 80 cols 120 # GHA doesn't provide the right amount by default | |
xvfb-run bash ../src/tests/suite.sh | |
find . -name '*.gcda' | xargs gcov-${{ matrix.gcc }} | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
ubuntu-cross-gcc: | |
strategy: | |
fail-fast: false | |
matrix: | |
gcc: [ 11, 12 ] | |
x11: [ "1", "0" ] | |
wayland: [ "1", "0" ] | |
#arch: [ "armv7", "aarch64", "riscv64", "s390x", "ppc64le" ] | |
arch: [ "aarch64", "riscv64", "s390x", "ppc64le" ] | |
distro: [ "ubuntu22.04" ] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: uraimo/run-on-arch-action@v2 | |
name: Test Clipboard | |
with: | |
arch: ${{ matrix.arch }} | |
distro: ${{ matrix.distro }} | |
dockerRunArgs: | | |
--init | |
install: | | |
NO_X11=1 | |
NO_WAYLAND=1 | |
PACKAGES="g++-${{ matrix.gcc }}" | |
if [[ "${{ matrix.x11 }}" == "1" ]] | |
then | |
NO_X11=0 | |
PACKAGES="${PACKAGES} libx11-dev" | |
fi | |
if [[ "${{ matrix.wayland }}" == "1" ]] | |
then | |
NO_WAYLAND=0 | |
PACKAGES="${PACKAGES} libwayland-dev wayland-protocols" | |
fi | |
apt-get update | |
apt-get upgrade -y | |
apt-get install -y $PACKAGES xvfb sway xclip cmake wl-clipboard squeekboard sudo pkg-config cmake-data libasound-dev liburing-dev | |
run: | | |
NO_X11=1 | |
NO_WAYLAND=1 | |
if [[ "${{ matrix.x11 }}" == "1" ]] | |
then | |
NO_X11=0 | |
fi | |
if [[ "${{ matrix.wayland }}" == "1" ]] | |
then | |
NO_WAYLAND=0 | |
fi | |
cd build | |
cmake .. \ | |
"-DCMAKE_CXX_COMPILER=g++-${{ matrix.gcc }}" \ | |
"-DCMAKE_C_COMPILER=gcc-${{ matrix.gcc }}" \ | |
"-DNO_X11=${NO_X11}" \ | |
"-DNO_WAYLAND=${NO_WAYLAND}" \ | |
"-DCMAKE_BUILD_TYPE=Debug" | |
cmake --build . -j 2 | |
cmake --install . | |
export CLIPBOARD_TMPDIR=/tmp | |
export CLIPBOARD_REQUIREX11=${{ matrix.x11 }} | |
export CLIPBOARD_REQUIREWAYLAND=${{ matrix.wayland }} | |
export WLR_BACKENDS=headless | |
export WLR_LIBINPUT_NO_DEVICES=1 | |
export WAYLAND_DISPLAY=wayland-1 | |
export LIBGL_ALWAYS_SOFTWARE=1 | |
export XDG_RUNTIME_DIR=/tmp | |
useradd -m -s /bin/bash user | |
chown -R user:user /home/user | |
echo "user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers | |
sudo -u user -E sway -d & | |
sleep 5 | |
squeekboard & | |
stty rows 80 cols 120 # GHA doesn't provide the right amount by default | |
xvfb-run bash ../src/tests/suite.sh | |
find . -name '*.gcda' | xargs gcov-${{ matrix.gcc }} | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
macos-arm64-amd64: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run a script | |
run: | | |
cd build | |
cmake .. -DCMAKE_BUILD_TYPE=Debug | |
cmake --build . --config Debug --parallel 2 | |
cmake --install . | |
export CLIPBOARD_TMPDIR=$TMPDIR | |
bash ../src/tests/suite.sh | |
find . -name '*.gcda' | xargs gcov | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
windows-amd64: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run a script | |
shell: bash | |
run: | | |
cd build | |
cmake .. -DCMAKE_BUILD_TYPE=Debug | |
cmake --build . --config Release -j 2 | |
echo $HOME | |
export TMPDIR=/c/Users/runneradmin/AppData/Local/Temp | |
cmake --install . | |
#installs to C:/Program Files (x86)/Clipboard/bin/cb.exe | |
#add to path | |
export PATH=$PATH:/c/Program\ Files\ \(x86\)/Clipboard/bin | |
export CLIPBOARD_TMPDIR=/c/Users/runneradmin/AppData/Local/Temp | |
bash ../src/tests/suite.sh | |
freebsd-amd64: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run a script | |
uses: cross-platform-actions/[email protected] | |
with: | |
operating_system: freebsd | |
architecture: x86-64 | |
version: '13.1' | |
shell: bash | |
run: | | |
sudo pkg install -y cmake llvm15 xorg wayland | |
cd build | |
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang15 -DCMAKE_CXX_COMPILER=clang++15 -DNO_X11=1 -DNO_COVERAGE=1 | |
cmake --build . -j 2 | |
sudo cmake --install . | |
export CLIPBOARD_TMPDIR=/tmp | |
bash ../src/tests/suite.sh | |
openbsd-amd64: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run a script | |
uses: cross-platform-actions/[email protected] | |
with: | |
operating_system: openbsd | |
architecture: x86-64 | |
version: '7.2' | |
shell: bash | |
run: | | |
sudo pkg_add cmake | |
cd build | |
cmake .. -DCMAKE_BUILD_TYPE=Debug -DNO_X11=1 -DNO_COVERAGE=1 | |
cmake --build . -j 2 | |
sudo cmake --install . | |
export CLIPBOARD_TMPDIR=/tmp | |
bash ../src/tests/suite.sh | |
openbsd-arm64: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run a script | |
uses: cross-platform-actions/[email protected] | |
with: | |
operating_system: openbsd | |
architecture: arm64 | |
version: '7.2' | |
shell: bash | |
run: | | |
sudo pkg_add cmake | |
cd build | |
cmake .. -DCMAKE_BUILD_TYPE=Debug -DNO_X11=1 -DNO_COVERAGE=1 | |
cmake --build . -j 2 | |
sudo cmake --install . | |
export CLIPBOARD_TMPDIR=/tmp | |
bash ../src/tests/suite.sh | |
netbsd-amd64: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run a script | |
uses: cross-platform-actions/[email protected] | |
with: | |
operating_system: netbsd | |
architecture: x86_64 | |
version: '9.2' | |
shell: bash | |
run: | | |
sudo pkgin -y install cmake gcc12 | |
cd build | |
cmake .. -DNO_LTO=1 -DNO_COVERAGE=1 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=/usr/pkg/gcc12/bin/g++ -DCMAKE_C_COMPILER=/usr/pkg/gcc12/bin/gcc | |
cmake --build . -j 2 | |
sudo cmake --install . | |
export CLIPBOARD_TMPDIR=/tmp | |
bash ../src/tests/suite.sh |