summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: 1fcff32e77df5030a6aec68191a0016da7f512ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
image: fedora:latest

variables:
  DEPENDENCIES: >-
    gcc clang meson ninja-build git bzip2 libusb-devel glib2-devel
  FUZZING_DEPENDENCIES: >-
    clang libcxx-devel compiler-rt
  MINGW_DEPENDENCIES: >-
    mingw64-gcc mingw64-pkg-config mingw64-glib2 mingw64-libusbx

# Check if can build with and without usbredirect
stable:
  before_script:
    - dnf install -y --nogpgcheck $DEPENDENCIES
  script:
    - meson . _build -Dfuzzing=disabled -Dtools=enabled
    - ninja -C _build
    - ninja -C _build dist

.fuzzing_base:
  resource_group: fuzzing
  before_script:
    - dnf install -y --nogpgcheck $DEPENDENCIES $FUZZING_DEPENDENCIES
    - export CC='clang -fsanitize=fuzzer-no-link -fsanitize=address'
    - export CXX='clang++ -fsanitize=fuzzer-no-link -fsanitize=address'

fuzzing:
  extends: .fuzzing_base
  script:
    - export LIB_FUZZING_ENGINE=-fsanitize=fuzzer
    - export OUT=/tmp/fuzzer
    - ./build-aux/oss-fuzz.sh

fuzzing_standalone:
  extends: .fuzzing_base
  script:
    - export LIB_FUZZING_ENGINE=standalone
    - export OUT=/tmp/fuzzer-standalone
    - ./build-aux/oss-fuzz.sh

windows:
  before_script:
    - dnf install -y --nogpgcheck $DEPENDENCIES $MINGW_DEPENDENCIES

  script:
    - mkdir _win_build && cd _win_build
    - mingw64-meson -Dtools=enabled
    - ninja