diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..b55eafb --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,81 @@ +name: Build KRunner Plugins + +on: + push: + branches: + - master + - github_actions + pull_request: + branches: + - master + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: + - name: ubuntu + image: ghcr.io/alex1701c/kde-neon-image:latest + - name: opensuse + image: opensuse/tumbleweed + - name: fedora + image: fedora + plasma_version: [plasma5, plasma6] + + runs-on: ubuntu-latest + container: ${{ matrix.os.image }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Install dependencies (Ubuntu) + if: matrix.os.name == 'ubuntu' + run: | + apt update + if [ "${{ matrix.plasma_version }}" == "plasma5" ]; then + apt install -y git cmake extra-cmake-modules build-essential qmake5 libkf5runner-dev qtdeclarative5-dev gettext libxdo-dev libkf5kcmutils-dev libkf5dbusaddons-bin + else + apt install -y git cmake extra-cmake-modules build-essential qmake6 libkf6runner-dev libxdo-dev libkf6kcmutils-dev kf6-kdbusaddons + fi + + - name: Install dependencies (OpenSUSE) + if: matrix.os.name == 'opensuse' + run: | + zypper refresh + if [ "${{ matrix.plasma_version }}" == "plasma5" ]; then + zypper install -y git cmake extra-cmake-modules ki18n-devel krunner-devel kconfigwidgets-devel kcmutils-devel gettext-tools xdotool-devel kdbusaddons-tools + else + zypper install -y git cmake kf6-extra-cmake-modules kf6-ki18n-devel kf6-krunner-devel gettext-tools xdotool-devel kf6-kconfigwidgets-devel kf6-kcmutils-devel kf6-kdbusaddons-tools + fi + + - name: Install dependencies (Fedora) + if: matrix.os.name == 'fedora' + run: | + dnf install -y git cmake extra-cmake-modules + if [ "${{ matrix.plasma_version }}" == "plasma5" ]; then + dnf install -y kf5-ki18n-devel kf5-krunner-devel gettext xdotool kf5-kcmutils-devel + else + dnf install -y kf6-ki18n-devel kf6-krunner-devel kf6-kcmutils-devel gettext xdotool + fi + + - name: Create build directory + run: | + mkdir -p build + cd build + + - name: Build with CMake + run: | + cd build + if [[ "${{ matrix.plasma_version }}" == "plasma6" ]]; then + cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_QT6=ON + else + cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_QT6=OFF + fi + cmake --build . + + - name: Run tests + run: | + cd build + ctest --output-on-failure + diff --git a/README.md b/README.md index 7a747aa..534c971 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,11 @@ but having the library installed is recommended. Debian/Ubuntu Plasma5: -```bash +```bash install-ubuntu-plasma5 sudo apt install git cmake extra-cmake-modules build-essential libkf5runner-dev qtdeclarative5-dev gettext libxdo-dev libkf5kcmutils-dev libkf5dbusaddons-bin ``` Plasma6: -```bash +```bash install-ubuntu-plasma6 sudo apt install git cmake extra-cmake-modules build-essential libkf6runner-dev libxdo-dev libkf6kcmutils-dev kf6-kdbusaddons ``` @@ -32,11 +32,11 @@ sudo apt install git cmake extra-cmake-modules build-essential libkf6runner-dev OpenSUSE Plasma5: -```bash +```bash install-opensuse-plasma5 sudo zypper install git cmake extra-cmake-modules ki18n-devel krunner-devel kconfigwidgets-devel kcmutils-devel gettext-tools xdotool-devel kdbusaddons-tools ``` Plasma6: -```bash +```bash install-opensuse-plasma6 sudo zypper install git cmake kf6-extra-cmake-modules kf6-ki18n-devel kf6-krunner-devel gettext-tools xdotool-devel kf6-kconfigwidgets-devel kf6-kcmutils-devel kf6-kdbusaddons-tools ``` @@ -46,11 +46,11 @@ sudo zypper install git cmake kf6-extra-cmake-modules kf6-ki18n-devel kf6-krunne Fedora Plasma5: -```bash +```bash install-fedora-plasma5 sudo dnf install git cmake extra-cmake-modules kf5-ki18n-devel kf5-krunner-devel gettext xdotool kf5-kcmutils-devel ``` Plasma6: -```bash +```bash install-fedora-plasma6 sudo dnf install git cmake extra-cmake-modules kf6-ki18n-devel kf6-krunner-devel kf6-kcmutils-devel gettext xdotool ```