diff --git a/.gitea/workflows/build-cpp.yml b/.gitea/workflows/build-cpp.yml new file mode 100644 index 0000000..ea8aa9a --- /dev/null +++ b/.gitea/workflows/build-cpp.yml @@ -0,0 +1,44 @@ +name: Build (C++) + +on: + pull_request: + +jobs: + build-zshell: + runs-on: alpine + container: archlinux:latest + + steps: + - name: Install all packages + run: | + pacman-key --init + pacman-key --populate archlinux + pacman -Syu --noconfirm \ + base-devel \ + cmake \ + ninja \ + pkgconf \ + sudo \ + git \ + qt6-base \ + qt6-declarative \ + qt6-shadertools \ + pipewire \ + libqalculate \ + glib2 \ + aubio \ + cava + + - name: Install libcava (AUR) + run: | + useradd -m builduser + passwd -d builduser + echo 'builduser ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + sudo -u builduser git clone https://aur.archlinux.org/libcava.git /tmp/libcava + sudo -u builduser makepkg -si --noconfirm -p /tmp/libcava/PKGBUILD + + - name: Configure + run: cmake -S . -B build -G Ninja + + - name: Build ZShell + run: cmake --build build --target ZShell diff --git a/.gitea/workflows/lint-cpp.yml b/.gitea/workflows/lint-cpp.yml new file mode 100644 index 0000000..f0602e1 --- /dev/null +++ b/.gitea/workflows/lint-cpp.yml @@ -0,0 +1,27 @@ +name: Lint & Format (C++) + +on: + pull_request: + +jobs: + lint-format: + runs-on: alpine + container: node:26-alpine + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install tools + run: | + apk add --no-cache \ + clang-extra-tools \ + git + + - name: Clang Format + run: | + if find . -type f \( -name "*.cpp" -o -name "*.hpp" -o -name "*.h" \) -print -quit | grep -q .; then + find . -type f \( -name "*.cpp" -o -name "*.hpp" -o -name "*.h" \) -print0 | xargs -0 clang-format --dry-run --Werror + else + echo "No C++ files found" + fi