summaryrefslogtreecommitdiff
path: root/.cirrus.yml
blob: 16cf0f4cd8b95c838fbda2b2a1585fb4f7f5d09d (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
env:
  CIRRUS_CLONE_DEPTH: 3 # The internal git client reads CIRRUS_CLONE_DEPTH.
  LIBPCAP_GIT: https://github.com/the-tcpdump-group/libpcap.git

freebsd_task:
  name: freebsd-amd64
  only_if: $CIRRUS_BRANCH != 'coverity_scan'
  freebsd_instance:
    # FreeBSD fails to start with 1 GB. 8 CPUs max concurrency.
    # The number of CPU cores must be either 1 or a multiple of 2.
    matrix:
      - image_family: freebsd-12-4
        cpu: 2
        memory: 2G
      - image_family: freebsd-13-2
        cpu: 2
        memory: 2G
  env:
    IGNORE_OSVERSION: yes
    MAKEFLAGS: -j 3
    MATRIX_CC: clang15 gcc12
  script:
    - pkg install -qy git autoconf gcc12 llvm15
    - pkg install -qy cmake # for build_matrix.sh and build.sh
    - pkg install -qy pkgconf # for cmake, replaces pkg-config
    - pkg install -qy sudo # for some tcpdump commands
    - echo '$ git clone [...] libpcap.git'
    - git -C .. clone --depth ${CIRRUS_CLONE_DEPTH} --branch=master --quiet ${LIBPCAP_GIT}
    - ./build_matrix.sh

linux_task:
  name: linux-amd64
  only_if: $CIRRUS_BRANCH != 'coverity_scan'
  container:
    # Linux works just fine with 1 GB. 16 CPUs max concurrency.
    # The number of CPU cores must be either 1 or a multiple of 2.
    cpu: 4
    memory: 1G
    image: ubuntu:22.04
  env:
    DEBIAN_FRONTEND: noninteractive
    MAKEFLAGS: -j 5
    MATRIX_CC: gcc clang-15
    LANG: C
  script:
    - apt-get -qy update >/dev/null
    - apt-get -qy install git autoconf make cmake clang-15 gcc bc >/dev/null
    - apt-get -qy install flex bison libdbus-1-dev libbluetooth-dev libnl-genl-3-dev libibverbs-dev >/dev/null # for libpcap
    - apt-get -qy install libssl-dev libsmi2-dev libcap-ng-dev libpcap-dev >/dev/null
    - apt-get -qy install sudo >/dev/null # for some tcpdump commands
    - apt list --installed 'lib*-dev'
    - echo '$ git clone [...] libpcap.git'
    - git -C .. clone --depth ${CIRRUS_CLONE_DEPTH} --branch=master --quiet ${LIBPCAP_GIT}
    - ./autogen.sh
    - ./configure --quiet # build the Makefile
    - make releasecheck
    - make whitespacecheck
    - ./build_matrix.sh

macos_task:
  name: macos-aarch64
  only_if: $CIRRUS_BRANCH != 'coverity_scan'
  macos_instance:
    image: ghcr.io/cirruslabs/macos-ventura-xcode:14.1 # macOS 13 with Xcode 14.1
  env:
    MAKEFLAGS: '-j 4'
  script:
    - brew update >/dev/null
    - brew install libsmi | grep -v '%'
    - echo '$ git clone [...] libpcap.git'
    - git -C .. clone --depth ${CIRRUS_CLONE_DEPTH} --branch=master --quiet ${LIBPCAP_GIT}
    - ./build_matrix.sh

coverity_task:
  name: Coverity Scan
  only_if: $CIRRUS_BRANCH == 'coverity_scan'
  container:
    cpu: 4
    memory: 2G
    image: ubuntu:22.04
  env:
    DEBIAN_FRONTEND: noninteractive
    MAKEFLAGS: -j 5
    COVERITY_SCAN_PROJECT_NAME: $CIRRUS_REPO_FULL_NAME
    COVERITY_SCAN_TOKEN: ENCRYPTED[1b6f994cabfe74267ce2dce81fd9e49f694e9cfe69fb99f7d1580907bec1266efd7b38df3a47ccab53d5af98636f8e9c]
    COVERITY_SCAN_BUILD_COMMAND_PREPEND: ./configure --enable-instrument-functions --enable-smb
    COVERITY_SCAN_BUILD_COMMAND: make
  script:
    - apt-get -qy update >/dev/null
    - apt-get -qy install autoconf make gcc >/dev/null
    - apt-get -qy install libssl-dev libsmi2-dev libcap-ng-dev libpcap-dev binutils-dev >/dev/null
    - apt-get -qy install git curl wget ruby rubygems ruby-json >/dev/null # for the coverity script
    - apt list --installed 'lib*-dev'
    - ./autogen.sh
    - ./.ci-coverity-scan-build.sh