diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 0000000..20c8782 --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,77 @@ +name: CI + +on: + push: + branches: + - master + pull_requuest: + branches: + - master + +jobs: + check: + name: Build and test + runs-on: ubuntu-latest + container: archlinux:latest + strategy: + fail-fast: false + matrix: + compiler: [gcc, clang] + include: + - compiler: gcc + cxx_compiler: g++ + - compiler: clang + cxx_compiler: clang++ + env: + CC: ${{ matrix.compiler }} + CXX: ${{ matrix.cxx_compiler }} + steps: + - name: Install dependencies + run: | + pacman -Syu --noconfirm base-devel clang cmake ninja extra-cmake-modules fmt libuv boost + - uses: actions/checkout@v4 + with: + repository: fcitx/fcitx5 + path: fcitx5 + - name: Cache data files + id: cache data + uses: actions/cache@v4 + with: + path: 'fcitx5/**/*.tar.*' + key: ${{ runner.os }}-${{ hashFiles('fcitx5/src/module/spell/CMakeLists.txt') }} + - name: Build and Install fcitx5 + uses: fcitx/github-actions@cmake + with: + path: fcitx5 + cmake-option: >- + -DENABLE_KEYBOARD=Off + -DENABLE_X11=Off + -DENABLE_WAYLAND=Off + -DENABLE_ENCHANT=Off + -DENABLE_DBUS=Off + -DENABLE_SERVER=Off + -DENABLE_EMOJI=Off + -DUSE_SYSTEMD=Off + - uses: actions/checkout@v4 + with: + path: libime + - name: Cache data files + id: cache data + uses: actions/cache@v4 + with: + path: 'libime/**/*.tar.*' + key: ${{ runner.os }}-${{ hashFiles('libime/data/CMakeLists.txt') }} + - name: Init CodeQL + uses: github/codeql-action/init@v3 + with: + languages: cpp + source-root: libime + - name: Build and Install libime + uses: fcitx/github-actions@cmake + with: + path: libime + - name: Test + run: | + ctest --test-dir libime/build + - name: CodeQL Analysis + uses: github/codeql-action/analyze@v2