summaryrefslogtreecommitdiffstats
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/alt-architectures.yml100
-rw-r--r--.github/workflows/clang-tidy.yml31
-rw-r--r--.github/workflows/codeql-analysis.yml129
-rw-r--r--.github/workflows/fuzzing.yml47
4 files changed, 307 insertions, 0 deletions
diff --git a/.github/workflows/alt-architectures.yml b/.github/workflows/alt-architectures.yml
new file mode 100644
index 0000000..50d29d9
--- /dev/null
+++ b/.github/workflows/alt-architectures.yml
@@ -0,0 +1,100 @@
+name: '[arm,ppc,ricsv] architecture builds'
+on:
+ workflow_dispatch:
+ branches: [ master, stable* ]
+ schedule:
+ - cron: '30 5 * * SUN'
+
+jobs:
+ build_job:
+ runs-on: ubuntu-latest
+ name: "Test on ${{ matrix.distro }}/${{ matrix.arch }}"
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - arch: armv6
+ distro: bullseye
+ - arch: armv7
+ distro: bullseye
+ - arch: aarch64
+ distro: bullseye
+ - arch: s390x
+ distro: bullseye
+ - arch: ppc64le
+ distro: bullseye
+ - arch: riscv64
+ distro: ubuntu22.04
+ steps:
+ - uses: actions/checkout@v4
+ - uses: uraimo/run-on-arch-action@master
+ name: "Run tests"
+ id: build
+ with:
+ arch: ${{ matrix.arch }}
+ distro: ${{ matrix.distro }}
+ githubToken: ${{ github.token }}
+ env: |
+ CTEST_OUTPUT_ON_FAILURE: 1
+ WLOG_LEVEL: 'trace'
+ install: |
+ apt-get update -q -y
+ apt-get install -q -y \
+ libxrandr-dev \
+ libxinerama-dev \
+ libusb-1.0-0-dev \
+ xserver-xorg-dev \
+ libswscale-dev \
+ libswresample-dev \
+ libavutil-dev \
+ libavcodec-dev \
+ libcups2-dev \
+ libpulse-dev \
+ libasound2-dev \
+ libpcsclite-dev \
+ xsltproc \
+ libxcb-cursor-dev \
+ libxcursor-dev \
+ libcairo2-dev \
+ libfaad-dev \
+ libjpeg-dev \
+ libgsm1-dev \
+ ninja-build \
+ libxfixes-dev \
+ libxkbcommon-dev \
+ libwayland-dev \
+ libpam0g-dev \
+ libxdamage-dev \
+ libxcb-damage0-dev \
+ libxtst-dev \
+ libfuse3-dev \
+ libsystemd-dev \
+ libcairo2-dev \
+ libsoxr-dev \
+ libsdl2-dev \
+ docbook-xsl \
+ libkrb5-dev \
+ libcjson-dev \
+ libpkcs11-helper1-dev \
+ libsdl2-ttf-dev \
+ libwebkit2gtk-4.0-dev \
+ libopus-dev \
+ libwebp-dev \
+ libpng-dev \
+ libjpeg-dev \
+ liburiparser-dev \
+ cmake \
+ clang
+ run: |
+ cmake -GNinja \
+ -C ci/cmake-preloads/config-linux-all.txt \
+ -B ci-build \
+ -S . \
+ -DCMAKE_INSTALL_PREFIX=/tmp/ci-test \
+ -DCMAKE_C_COMPILER=/usr/bin/clang \
+ -DCMAKE_CXX_COMPILER=/usr/bin/clang++ \
+ -DUSE_UNWIND=OFF \
+ -DUSE_EXECINFO=OFF \
+ -DWITH_SANITIZE_ADDRESS=OFF
+ cmake --build ci-build --parallel $(nproc) --target install
+ cmake --build ci-build --parallel $(nproc) --target test
diff --git a/.github/workflows/clang-tidy.yml b/.github/workflows/clang-tidy.yml
new file mode 100644
index 0000000..703bdb6
--- /dev/null
+++ b/.github/workflows/clang-tidy.yml
@@ -0,0 +1,31 @@
+name: clang-tidy-review
+on:
+ pull_request_target:
+ branches: [ master, stable* ]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: suzuki-shunsuke/get-pr-action@v0.1.0
+ id: pr
+ - uses: actions/checkout@v4
+ with:
+ ref: ${{steps.pr.outputs.merge_commit_sha}}
+
+ # Run clang-tidy
+ - uses: ZedThree/clang-tidy-review@v0.17.1
+ id: review
+ with:
+ clang_tidy_checks: ''
+ # List of packages to install
+ apt_packages: libkrb5-dev,libxkbcommon-dev,libxkbfile-dev,libx11-dev,libwayland-dev,libxrandr-dev,libxi-dev,libxrender-dev,libxext-dev,libxinerama-dev,libxfixes-dev,libxcursor-dev,libxv-dev,libxdamage-dev,libxtst-dev,libcups2-dev,libcairo2-dev,libpcsclite-dev,libasound2-dev,libswscale-dev,libpulse-dev,libavcodec-dev,libavutil-dev,libfuse3-dev,libswresample-dev,libusb-1.0-0-dev,libudev-dev,libdbus-glib-1-dev,libpam0g-dev,uuid-dev,libxml2-dev,libcjson-dev,libsdl2-2.0-0,libsdl2-dev,libsdl2-ttf-dev,libsdl2-image-dev,libsystemd-dev,libpkcs11-helper1-dev,libwebkit2gtk-4.0-dev,liburiparser-dev,libopus-dev,opensc-pkcs11,libwebp-dev,libjpeg-dev,libpng-dev,xsltproc,docbook-xsl,libgsm1-dev,libfaac-dev,libfaad-dev,libsoxr-dev,opencl-c-headers,opencl-headers,ocl-icd-opencl-dev
+
+ # CMake command to run in order to generate compile_commands.json
+ build_dir: tidy
+ cmake_command: cmake -Btidy -S. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DWITH_DEBUG_ALL=ON -DWITH_INTERNAL_MD4=ON -DWITH_INTERNAL_MD5=ON -DWITH_INTERNAL_RC4=ON -DBUILD_TESTING=ON -DWINPR_UTILS_IMAGE_JPEG=ON -DWINPR_UTILS_IMAGE_PNG=ON -DWINPR_UTILS_IMAGE_WEBP=ON -DWITH_BINARY_VERSIONING=ON -DWITH_CAIRO=ON -DWITH_DSP_EXPERIMENTAL=ON -DWITH_FAAC=ON -DWITH_FAAD2=ON -DWITH_FREERDP_DEPRECATED=ON -DWITH_FREERDP_DEPRECATED_COMMANDLINE=ON -DWITH_GSM=ON -DWITH_OPUS=ON -DWITH_PROXY_EMULATE_SMARTCARD=ON -DWITH_PULSE=ON -DWITH_SMARTCARD_INSPECT=ON -DWITH_SOXR=ON -DWITH_UNICODE_BUILTIN=ON -DWITH_VAAPI=ON -DWITH_WINPR_DEPRECATED=ON -DWITH_SDL_IMAGE_DIALOGS=ON -DWITH_PROFILER=ON -DWITH_OPENCL=ON -DCHANNEL_TSMF=ON
+
+ # Uploads an artefact containing clang_fixes.json
+ - uses: ZedThree/clang-tidy-review/upload@v0.17.1
+ id: upload-review
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
new file mode 100644
index 0000000..2db775f
--- /dev/null
+++ b/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,129 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+#
+# ******** NOTE ********
+# We have attempted to detect the languages in your repository. Please check
+# the `language` matrix defined below to confirm you have the correct set of
+# supported CodeQL languages.
+#
+name: "CodeQL"
+
+on:
+ workflow_dispatch:
+ branches: [ master, stable* ]
+ pull_request_target:
+ branches: [ master, stable* ]
+
+permissions:
+ contents: read
+
+jobs:
+ analyze:
+ permissions:
+ security-events: write
+ actions: read
+ contents: read
+ name: Analyze
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'cpp' ]
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
+ # Learn more:
+ # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
+
+ steps:
+ - uses: suzuki-shunsuke/get-pr-action@v0.1.0
+ id: pr
+ - uses: actions/checkout@v4
+ with:
+ ref: ${{steps.pr.outputs.merge_commit_sha}}
+
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v3
+ with:
+ languages: ${{ matrix.language }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
+ # If this step fails, then you should remove it and run the build manually (see below)
+ # - name: Autobuild
+ # uses: github/codeql-action/autobuild@v2
+
+ # ℹī¸ Command-line programs to run using the OS shell.
+ # 📚 https://git.io/JvXDl
+
+ # ✏ī¸ If the Autobuild fails above, remove it and uncomment the following three lines
+ # and modify them (or add more) to build your code if your project
+ # uses a compiled language
+
+ - run: |
+ sudo apt update
+ sudo apt install \
+ libxrandr-dev \
+ libxinerama-dev \
+ libusb-1.0-0-dev \
+ xserver-xorg-dev \
+ libswscale-dev \
+ libswresample-dev \
+ libavutil-dev \
+ libavcodec-dev \
+ libcups2-dev \
+ libpulse-dev \
+ libasound2-dev \
+ libpcsclite-dev \
+ xsltproc \
+ libxcb-cursor-dev \
+ libxcursor-dev \
+ libcairo2-dev \
+ libfaac-dev \
+ libfaad-dev \
+ libjpeg-dev \
+ libgsm1-dev \
+ ninja-build \
+ libxfixes-dev \
+ libxkbcommon-dev \
+ libwayland-dev \
+ libpam0g-dev \
+ libxdamage-dev \
+ libxcb-damage0-dev \
+ ccache \
+ libxtst-dev \
+ libfuse3-dev \
+ libsystemd-dev \
+ libcairo2-dev \
+ libsoxr-dev \
+ libsdl2-dev \
+ docbook-xsl \
+ libkrb5-dev \
+ libcjson-dev \
+ libpkcs11-helper1-dev \
+ libsdl2-ttf-dev \
+ libsdl2-image-dev \
+ libwebkit2gtk-4.0-dev \
+ clang \
+ libopus-dev \
+ libwebp-dev \
+ libpng-dev \
+ libjpeg-dev \
+ liburiparser-dev
+ mkdir ci-build
+ cd ci-build
+ export CC=/usr/bin/clang
+ export CXX=/usr/bin/clang++
+ export CFLAGS="-Weverything"
+ export CXXFLAGS="-Weverything"
+ cmake -GNinja ../ci/cmake-preloads/config-linux-all.txt ..
+ cmake --build .
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v3
diff --git a/.github/workflows/fuzzing.yml b/.github/workflows/fuzzing.yml
new file mode 100644
index 0000000..948fd42
--- /dev/null
+++ b/.github/workflows/fuzzing.yml
@@ -0,0 +1,47 @@
+name: Fuzzing testing
+
+on:
+ workflow_dispatch:
+ branches: [ master, stable* ]
+ pull_request_target:
+ branches: [ master, stable* ]
+
+jobs:
+ fuzzing:
+ if: github.repository == 'FreeRDP/FreeRDP'
+
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ sanitizer: [address]
+
+ steps:
+ - uses: suzuki-shunsuke/get-pr-action@v0.1.0
+ id: pr
+ - uses: actions/checkout@v4
+ with:
+ ref: ${{steps.pr.outputs.merge_commit_sha}}
+
+ - name: Build fuzzers (${{ matrix.sanitizer }})
+ id: build
+ uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
+ with:
+ oss-fuzz-project-name: 'freerdp'
+ dry-run: false
+ sanitizer: ${{ matrix.sanitizer }}
+ - name: Run fuzzers (${{ matrix.sanitizer }})
+ uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
+ with:
+ oss-fuzz-project-name: 'freerdp'
+ fuzz-seconds: 600
+ dry-run: false
+ sanitizer: ${{ matrix.sanitizer }}
+ - name: Upload crash
+ uses: actions/upload-artifact@v3
+ if: failure() && steps.build.outcome == 'success'
+ with:
+ name: ${{ matrix.sanitizer }}-artifacts
+ retention-days: 21
+ path: ./out/artifacts