summaryrefslogtreecommitdiff
path: root/.cirrus.yml
blob: 28472f78293e19080599d593e73b8c128539d4eb (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
gcp_credentials: ENCRYPTED[51b00226f2de108c3fa890e94efadc2d4efad2ca8d12d31794b8e8af33d1ece12c13d51dcf3cc0c0222cda3391a469b5]

standard_build: &standard_build
  configure_script:
    - ${CHROOT} su build -c ./bootstrap
    - ${CHROOT} su build -c ./configure
  build_client_script:
    - ${CHROOT} su build -c 'make build-backup-client'
  build_server_script:
    - ${CHROOT} su build -c 'make build-backup-server'
  debug_tests_script:
    - ${CHROOT} su build -c 'make debug_tests'
  release_tests_script:
    - ${CHROOT} su build -c 'make release_tests'

standard_gce_instance: &standard_gce_instance
  zone: europe-west2-c
  type: n1-standard-1  # 1 vCPU, 3.75GB mem
  disk: 10
  use_ssd: true
  #preemptible: $CIRRUS_BRANCH != "master"

task:
  name: CentOS 7 amd64
  gce_instance:
    <<: *standard_gce_instance
    image_project: centos-cloud
    image_name: centos-7-v20190619
  setup_script:
    - yum install -y git autoconf automake gcc gcc-c++ zlib-devel openssl-devel libdb-devel readline-devel make libxslt perl-libwww-perl boost-devel
    - useradd -m build
    - chown -R build: .
  <<: *standard_build

task:
  matrix:
    - name: Debian 9 i386
      gce_instance:
        <<: *standard_gce_instance
        image_project: debian-cloud
        image_name: debian-9-stretch-v20190618
      setup_chroot_script:
        - ./infrastructure/setup-debian-chroot.sh
        - schroot --begin-session --session-name stretch-build --chroot stretch
      env:
        CHROOT: schroot --run-session --chroot stretch-build --directory /tmp/cirrus-ci-build --
    - name: Debian 9 amd64
      gce_instance:
        <<: *standard_gce_instance
        image_project: debian-cloud
        image_name: debian-9-stretch-v20190618

  setup_script:
    - ${CHROOT} apt-get update
    - ${CHROOT} sh -c "DEBIAN_FRONTEND=noninteractive apt-get install -o Dpkg::Options::='--force-confold' -y git autoconf automake gcc g++ zlib1g-dev libssl-dev libdb-dev libreadline-dev libeditline-dev make xsltproc libwww-perl libboost-dev"
    - ${CHROOT} useradd -m build
    - ${CHROOT} chown -R build: .
  <<: *standard_build

task:
  name: FreeBSD 12.0 amd64
  gce_instance:
    <<: *standard_gce_instance
    image_project: freebsd-org-cloud-dev
    image_name: freebsd-12-0-release-amd64
    disk: 30  # Image is 29GB, VM can't be smaller
    platform: FreeBSD
  setup_script:
    - pkg install -y git autoconf automake libxslt p5-libwww boost-libs
    - pw useradd build -m -w none
    - chown -R build: .
  <<: *standard_build

task:
  name: MacOS Mojave
  osx_instance:
    image: mojave-xcode-10.2
  env:
    CPPFLAGS: -I/usr/local/opt/openssl/include
    LDFLAGS: -L/usr/local/opt/openssl/lib
  setup_script:
    - brew install autoconf automake openssl readline
  # Don't use standard_build for now - not sure if the build user is required, or how to add users on macOS
  configure_script:
    - export CPPFLAGS LDFLAGS
    - ./bootstrap
    - ./configure
  build_client_script:
    - make build-backup-client
  build_server_script:
    - make build-backup-server
  debug_tests_script:
    - make debug_tests
  release_tests_script:
    - make release_tests

task:
  matrix:
    - name: Ubuntu 16.04 amd64
      gce_instance:
        <<: *standard_gce_instance
        image_project: ubuntu-os-cloud
        image_name: ubuntu-1604-xenial-v20190617
    - name: Ubuntu 18.04 amd64
      gce_instance:
        <<: *standard_gce_instance
        image_project: ubuntu-os-cloud
        image_name: ubuntu-1804-bionic-v20190617
  setup_script:
    - apt-get update
    - apt-get install -y git autoconf automake gcc g++ zlib1g-dev libssl-dev libdb-dev libreadline-dev libeditline-dev make xsltproc libwww-perl libboost-dev
    - useradd -m build
    - chown -R build .
  <<: *standard_build