From 13e9b0850b1e88d0563e1d67700961ffd5fc3f11 Mon Sep 17 00:00:00 2001 From: Alexander Lohnau Date: Sat, 12 Oct 2024 09:58:52 +0200 Subject: [PATCH] Github actions workflow --- .github/workflows/ci.yaml | 82 +++++++++++++++++++++++++++++++++++++++ README.md | 12 +++--- 2 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..d490614 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,82 @@ +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: invent-registry.kde.org/neon/docker-images/plasma:user + - name: ubuntu + image: ubuntu:24.04 + - name: opensuse + image: opensuse/tumbleweed + - name: fedora + image: fedora + plasma_version: [plasma5, plasma6] + exclude: + - os: + image: invent-registry.kde.org/neon/docker-images/plasma:user + plasma_version: plasma5 + - os: + image: ubuntu:24.04 + plasma_version: plasma6 + + runs-on: ubuntu-latest + container: + image: ${{ matrix.os.image }} + options: --user root + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Install dependencies + shell: bash + run: | + if [[ "${{ matrix.os.name }}" == "ubuntu" ]]; then + apt update + elif [[ "${{ matrix.os.name }}" == "fedora" ]]; then + echo "Nothing to do on Fedora" + elif [[ "${{ matrix.os.name }}" == "opensuse" ]]; then + zypper refresh + else + echo "Unsupported OS: ${{ matrix.os.name }}" + exit 1 + fi + echo "Dependencies for install-${{ matrix.os.name }}-${{ matrix.plasma_version }}" + CMD=$(sed -n '/```bash install-${{ matrix.os.name }}-${{ matrix.plasma_version }}/,/```/p' README.md | head -n -1 | tail -n +2 |sed 's/sudo //') + echo "$CMD" + eval $CMD + + - name: Create build directory + run: | + mkdir -p build + cd build + + - name: Build and install + shell: bash + 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 . + cmake --install . + + - 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 ```