Skip to content

Finish Script action, add justfile #851

Finish Script action, add justfile

Finish Script action, add justfile #851

name: Clipboard Builds
on: [ push, pull_request ]
jobs:
linux_x11wl:
strategy:
fail-fast: false
matrix:
gcc: [ 12 ]
arch:
#- os: i386
# gcc: i686-linux-gnu
# needs_ports: "0"
- os: amd64
gcc: x86_64-linux-gnu
needs_ports: "0"
- os: arm64
gcc: aarch64-linux-gnu
needs_ports: "1"
- os: riscv64
gcc: riscv64-linux-gnu
needs_ports: "1"
- os: armhf
gcc: arm-linux-gnueabihf
needs_ports: "1"
- os: ppc64el
gcc: powerpc64le-linux-gnu
needs_ports: "1"
#- os: s390x
# gcc: s390x-linux-gnu
# needs_ports: "1"
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
#- uses: lhotari/action-upterm@v1
- name: Run a script
run: |
GPP_PACKAGE="g++-${{ matrix.gcc }}-${{ matrix.arch.gcc }}"
if [[ "${{ matrix.arch.gcc }}" == "$(uname --processor)-linux-gnu" ]]; then
GPP_PACKAGE="g++-${{ matrix.gcc }}"
fi
if [[ "${{ matrix.arch.needs_ports }}" == "1" ]]; then
sudo echo "deb [arch=${{ matrix.arch.os }}] http://ports.ubuntu.com/ $(lsb_release -sc) main multiverse universe" | sudo tee -a /etc/apt/sources.list
sudo echo "deb [arch=${{ matrix.arch.os }}] http://ports.ubuntu.com/ $(lsb_release -sc)-updates main multiverse universe" | sudo tee -a /etc/apt/sources.list
sudo echo "deb [arch=${{ matrix.arch.os }}] http://ports.ubuntu.com/ $(lsb_release -sc)-security main multiverse universe" | sudo tee -a /etc/apt/sources.list
sudo echo "deb [arch=${{ matrix.arch.os }}] http://ports.ubuntu.com/ $(lsb_release -sc)-backports main multiverse universe" | sudo tee -a /etc/apt/sources.list
echo "remove archive ubuntu for ports";
sudo sed -ibak '/\/archive.ubuntu.com/d' /etc/apt/sources.list;
fi
# This limits apt to only looking or amd64 and i386 from Azure, see https://github.com/actions/virtual-environments/issues/1961
sudo sed -i'' -E 's/^deb http:\/\/(azure.archive|security).ubuntu.com/deb [arch=amd64,i386] http:\/\/\1.ubuntu.com/' /etc/apt/sources.list
sudo apt update || true
sudo dpkg --add-architecture "${{ matrix.arch.os }}"
sudo apt update || true
sudo apt install -y "${GPP_PACKAGE}"
sudo apt install -y "libx11-dev:${{ matrix.arch.os }}"
sudo apt install -y "libwayland-dev:${{ matrix.arch.os }}"
sudo apt install -y "wayland-protocols:${{ matrix.arch.os }}"
sudo apt install -y "libasound-dev:${{ matrix.arch.os }}"
sudo apt install -y "liburing-dev:${{ matrix.arch.os }}"
sudo apt install -y "libssl-dev:${{ matrix.arch.os }}"
sudo apt install -y "openssl:${{ matrix.arch.os }}"
cd build
cmake .. \
"-DCMAKE_CXX_COMPILER=${{ matrix.arch.gcc }}-g++-${{ matrix.gcc }}" \
"-DCMAKE_C_COMPILER=${{ matrix.arch.gcc }}-gcc-${{ matrix.gcc }}" \
"-DCMAKE_BUILD_TYPE=Release" \
"-DOPENSSL_CRYPTO_LIBRARY=/usr/lib/${{ matrix.arch.gcc }}/libcrypto.so" \
cmake --build . -j 4
- uses: actions/upload-artifact@v4
with:
name: clipboard-linux-${{ matrix.arch.os }}
path: build/output
flatpak-amd64:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run a script
run: |
sudo apt update
sudo apt install -y flatpak-builder flatpak
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user --noninteractive flathub org.freedesktop.Platform//22.08 org.freedesktop.Sdk//22.08
flatpak-builder --repo=repo --force-clean build-dir app.getclipboard.Clipboard.yml
flatpak build-bundle repo clipboard-flatpak-amd64.flatpak app.getclipboard.Clipboard
- uses: actions/upload-artifact@v4
with:
name: clipboard-flatpak-amd64
path: |
clipboard-flatpak-amd64.flatpak
snap-amd64:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: snapcore/action-build@v1
- uses: actions/upload-artifact@v4
with:
name: clipboard-snap-amd64
path: |
*.snap
macos-arm64:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Run a script
run: |
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j 3
- uses: actions/upload-artifact@v4
with:
name: clipboard-macos-arm64
path: build/output
macos-amd64:
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- name: Run a script
run: |
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j 3
- uses: actions/upload-artifact@v4
with:
name: clipboard-macos-amd64
path: build/output
windows-amd64:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Run a script
run: |
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j 3
- uses: actions/upload-artifact@v4
with:
name: clipboard-windows-amd64
path: build/output
windows-arm64:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Run a script
run: |
vcpkg install openssl:arm64-windows
$env:PATH = "$env:VCPKG_ROOT;$env:PATH"
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_GENERATOR_PLATFORM=ARM64
cmake --build . --config Release -j 3
- uses: actions/upload-artifact@v4
with:
name: clipboard-windows-arm64
path: build/output
freebsd-amd64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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=Release -DCMAKE_C_COMPILER=clang15 -DCMAKE_CXX_COMPILER=clang++15 -DNO_X11=1
cmake --build . -j 2
- uses: actions/upload-artifact@v4
with:
name: clipboard-freebsd-amd64
path: build/output
openbsd-amd64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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=Release -DNO_X11=1
cmake --build . -j 2
- uses: actions/upload-artifact@v4
with:
name: clipboard-openbsd-amd64
path: build/output
openbsd-arm64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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=Release -DNO_X11=1
cmake --build . -j 2
- uses: actions/upload-artifact@v4
with:
name: clipboard-openbsd-arm64
path: build/output
netbsd-amd64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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 .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/pkg/gcc12/bin/gcc -DCMAKE_CXX_COMPILER=/usr/pkg/gcc12/bin/g++
cmake --build . -j 2
- uses: actions/upload-artifact@v4
with:
name: clipboard-netbsd-amd64
path: build/output