cmake: bump ver to 0.4.2 #117
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: Build & Test (Arch) | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
gcc: | |
name: "gcc build / clang test" | |
runs-on: ubuntu-latest | |
container: | |
image: archlinux | |
steps: | |
- name: Checkout repository actions | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: .github/actions | |
- name: Get required pkgs | |
run: | | |
sed -i 's/SigLevel = Required DatabaseOptional/SigLevel = Optional TrustAll/' /etc/pacman.conf | |
pacman --noconfirm --noprogressbar -Syyu | |
pacman --noconfirm --noprogressbar -Sy gcc base-devel cmake clang | |
- name: Build hyprlang with gcc | |
run: | | |
CC="/usr/bin/gcc" CXX="/usr/bin/g++" cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build | |
CC="/usr/bin/gcc" CXX="/usr/bin/g++" cmake --build ./build --config Release --target hyprlang -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` | |
cmake --install ./build | |
- name: Build tests with clang | |
run: | | |
rm -rf ./build | |
CC="/usr/bin/clang" CXX="/usr/bin/clang++" cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build | |
CC="/usr/bin/clang" CXX="/usr/bin/clang++" cmake --build ./build --config Release --target tests -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` | |
- name: Run tests | |
run: | | |
cd ./build && ctest --output-on-failure | |
asan: | |
name: "gcc build / ASan tests" | |
runs-on: ubuntu-latest | |
container: | |
image: archlinux | |
steps: | |
- name: Checkout repository actions | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: .github/actions | |
- name: Get required pkgs | |
run: | | |
sed -i 's/SigLevel = Required DatabaseOptional/SigLevel = Optional TrustAll/' /etc/pacman.conf | |
pacman --noconfirm --noprogressbar -Syyu | |
pacman --noconfirm --noprogressbar -Sy gcc base-devel cmake clang | |
- name: Build with gcc | |
run: | | |
CXXFLAGS="-fsanitize=address" CC="/usr/bin/gcc" CXX="/usr/bin/g++" cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build | |
CXXFLAGS="-fsanitize=address" CC="/usr/bin/gcc" CXX="/usr/bin/g++" cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` | |
cmake --install ./build | |
- name: Run tests | |
run: | | |
cd ./build && ctest --output-on-failure | |
ubsan: | |
name: "gcc build / UBSan tests" | |
runs-on: ubuntu-latest | |
container: | |
image: archlinux | |
steps: | |
- name: Checkout repository actions | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: .github/actions | |
- name: Get required pkgs | |
run: | | |
sed -i 's/SigLevel = Required DatabaseOptional/SigLevel = Optional TrustAll/' /etc/pacman.conf | |
pacman --noconfirm --noprogressbar -Syyu | |
pacman --noconfirm --noprogressbar -Sy gcc base-devel cmake clang | |
- name: Build with gcc | |
run: | | |
CXXFLAGS="-fsanitize=undefined" CC="/usr/bin/gcc" CXX="/usr/bin/g++" cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build | |
CXXFLAGS="-fsanitize=undefined" CC="/usr/bin/gcc" CXX="/usr/bin/g++" cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` | |
cmake --install ./build | |
- name: Run tests | |
run: | | |
cd ./build && ctest --output-on-failure | |
msan: | |
name: "gcc build / MSan tests" | |
runs-on: ubuntu-latest | |
container: | |
image: archlinux | |
steps: | |
- name: Checkout repository actions | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: .github/actions | |
- name: Get required pkgs | |
run: | | |
sed -i 's/SigLevel = Required DatabaseOptional/SigLevel = Optional TrustAll/' /etc/pacman.conf | |
pacman --noconfirm --noprogressbar -Syyu | |
pacman --noconfirm --noprogressbar -Sy gcc base-devel cmake clang | |
- name: Build with gcc | |
run: | | |
CXXFLAGS="-fsanitize=leak" CC="/usr/bin/gcc" CXX="/usr/bin/g++" cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build | |
CXXFLAGS="-fsanitize=leak" CC="/usr/bin/gcc" CXX="/usr/bin/g++" cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` | |
cmake --install ./build | |
- name: Run tests | |
run: | | |
cd ./build && ctest --output-on-failure | |
clang: | |
name: "clang build / gcc test" | |
runs-on: ubuntu-latest | |
container: | |
image: archlinux | |
steps: | |
- name: Checkout repository actions | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: .github/actions | |
- name: Get required pkgs | |
run: | | |
sed -i 's/SigLevel = Required DatabaseOptional/SigLevel = Optional TrustAll/' /etc/pacman.conf | |
pacman --noconfirm --noprogressbar -Syyu | |
pacman --noconfirm --noprogressbar -Sy gcc base-devel cmake clang | |
- name: Build hyprlang with clang | |
run: | | |
CC="/usr/bin/clang" CXX="/usr/bin/clang++" cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build | |
CC="/usr/bin/clang" CXX="/usr/bin/clang++" cmake --build ./build --config Release --target hyprlang -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` | |
cmake --install ./build | |
- name: Build tests with gcc | |
run: | | |
rm -rf ./build | |
CC="/usr/bin/gcc" CXX="/usr/bin/g++" cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build | |
CC="/usr/bin/gcc" CXX="/usr/bin/g++" cmake --build ./build --config Release --target tests -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` | |
- name: Run tests | |
run: | | |
cd ./build && ctest --output-on-failure | |
doxygen: | |
name: "Deploy docs" | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/main' | |
container: | |
image: archlinux | |
steps: | |
- name: Checkout repository actions | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: .github/actions | |
- name: Get required pkgs | |
run: | | |
sed -i 's/SigLevel = Required DatabaseOptional/SigLevel = Optional TrustAll/' /etc/pacman.conf | |
pacman --noconfirm --noprogressbar -Syyu | |
pacman --noconfirm --noprogressbar -Sy gcc base-devel cmake clang doxygen git openssh | |
- name: Get doxygen theme | |
run: | | |
git clone https://github.com/jothepro/doxygen-awesome-css | |
cd doxygen-awesome-css && git checkout v2.3.1 && cd .. | |
- name: Build doxygen site | |
run: | | |
doxygen hyprlang-docs | |
- name: Deploy | |
env: | |
PK: ${{ secrets.UPDATE_DOCS_PK }} | |
PT: ${{ secrets.DEPLOY_PORT5 }} | |
AD: ${{ secrets.DEPLOY_USER }} | |
PH: ${{ secrets.DEPLOY_PATH }} | |
run: | | |
echo "$PK" > ./pk | |
chmod 400 ./pk | |
eval $(ssh-agent -s) && ssh-add ./pk 2>&1 > /dev/null | |
scp -O -o "StrictHostKeyChecking=no" -q -o "LogLevel=QUIET" -P $PT -r ./doxygen/html/* $AD:.$PH 2>&1 > /dev/null | |