project: adjust devops config #522
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
# Copyright (C) 2021-2024 Saturneric <eric@bktus.com> | |
# | |
# This file is part of GpgFrontend. | |
# | |
# GpgFrontend is free software: you can redistribute it and/or modify | |
# it under the terms of the GNU General Public License as published by | |
# the Free Software Foundation, either version 3 of the License, or | |
# (at your option) any later version. | |
# | |
# GpgFrontend is distributed in the hope that it will be useful, | |
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
# GNU General Public License for more details. | |
# | |
# You should have received a copy of the GNU General Public License | |
# along with GpgFrontend. If not, see <https://www.gnu.org/licenses/>. | |
# | |
# The initial version of the source code is inherited from | |
# the gpg4usb project, which is under GPL-3.0-or-later. | |
# | |
# All the source code of GpgFrontend was modified and released by | |
# Saturneric <eric@bktus.com> starting on May 12, 2021. | |
# | |
# SPDX-License-Identifier: GPL-3.0-or-later | |
name: "CodeQL" | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
schedule: | |
- cron: "19 14 * * 2" | |
env: | |
BUILD_TYPE: Debug | |
jobs: | |
analyze: | |
name: Analyze | |
runs-on: ubuntu-latest | |
permissions: | |
actions: read | |
contents: read | |
security-events: write | |
strategy: | |
fail-fast: false | |
matrix: | |
language: ["cpp"] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
lfs: "false" | |
submodules: recursive | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v3 | |
with: | |
languages: ${{ matrix.language }} | |
- name: Install Dependence | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install build-essential binutils git autoconf automake gettext texinfo | |
sudo apt-get -y install gcc g++ ninja-build | |
sudo apt-get -y install libarchive-dev libgpgme-dev | |
sudo apt-get -y install gpg | |
- name: Build gpg-error | |
run: | | |
git clone --depth 1 --branch libgpg-error-1.47 git://git.gnupg.org/libgpg-error.git ${{github.workspace}}/third_party/libgpg-error | |
cd ${{github.workspace}}/third_party/libgpg-error | |
./autogen.sh | |
./configure --enable-maintainer-mode && make -j4 | |
sudo make install | |
cd ${{github.workspace}} | |
- name: Build assuan | |
run: | | |
git clone --depth 1 --branch libassuan-2.5.6 git://git.gnupg.org/libassuan.git ${{github.workspace}}/third_party/libassuan | |
cd ${{github.workspace}}/third_party/libassuan | |
./autogen.sh | |
./configure --enable-maintainer-mode && make -j4 | |
sudo make install | |
cd ${{github.workspace}} | |
- name: Build GpgME | |
run: | | |
git clone --depth 1 --branch gpgme-1.22.0 git://git.gnupg.org/gpgme.git ${{github.workspace}}/third_party/gpgme | |
cd ${{github.workspace}}/third_party/gpgme | |
./autogen.sh | |
./configure --enable-maintainer-mode --enable-languages=cpp && make -j4 | |
sudo make install | |
cd ${{github.workspace}} | |
- name: Build googletest | |
run: | | |
git clone --depth 1 --branch v1.15.0 https://github.com/google/googletest.git ${{github.workspace}}/third_party/googletest | |
cd ${{github.workspace}}/third_party/googletest | |
mkdir build && cd build | |
cmake -G Ninja -DBUILD_SHARED_LIBS=ON .. | |
ninja | |
sudo ninja install | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: "6.7.2" | |
cache: "true" | |
- name: Configure CMake && Build GpgFrontend | |
run: | | |
cmake -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGPGFRONTEND_BUILD_TYPE_STABLE=ON | |
cmake --build ${{github.workspace}}/build --config {{$env.BUILD_TYPE}} -- -v | |
- name: Perform CodeQL Analysis | |
uses: github/codeql-action/analyze@v3 |