summaryrefslogtreecommitdiff
path: root/.cirrus.yml
blob: 1d769f1159b3aaccd7e7dfe3263432e99b165f4f (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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
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 --disablerepo=google-cloud-sdk --disablerepo=google-compute-engine 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

freebsd_gce_instance: &freebsd_gce_instance
  <<: *standard_gce_instance
  platform: FreeBSD
  image_project: freebsd-org-cloud-dev
  # Need to use image_name for now: https://github.com/cirruslabs/cirrus-ci-docs/issues/422
  disk: 30  # Image is 29GB, VM can't be smaller

task:
  matrix:
    - name: FreeBSD 14.0 (pre) amd64
      gce_instance:
        <<: *freebsd_gce_instance
        image_family: freebsd-14-0-snap
    - name: FreeBSD 13.0 amd64
      gce_instance:
        <<: *freebsd_gce_instance
        image_name: freebsd-13-0-current-amd64-v20190829
        image_family: freebsd-13-0
    - name: FreeBSD 12.3 amd64
      gce_instance:
        <<: *freebsd_gce_instance
        image_family: freebsd-12-3
    - name: FreeBSD 11.4 amd64
      gce_instance:
        <<: *freebsd_gce_instance
        image_family: freebsd-11-4

  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