pinned_go: &pinned_go go=1.12.9-1
build_dir: &build_dir /cfsetup_build
default-flavor: stretch
stretch: &stretch
  build:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - build-essential
    post-cache:
      - export GOOS=linux
      - export GOARCH=amd64
      - make cloudflared
  build-deb:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - build-essential
      - fakeroot
      - rubygem-fpm
    post-cache:
      - export GOOS=linux
      - export GOARCH=amd64
      - make cloudflared-deb
  publish-deb:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - build-essential
      - fakeroot
      - rubygem-fpm
      - openssh-client
    post-cache:
      - export GOOS=linux
      - export GOARCH=amd64
      - make publish-deb
  release-linux-amd64:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - build-essential
    post-cache:
      - export GOOS=linux
      - export GOARCH=amd64
      - make release
  github-release-linux-amd64:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - build-essential
      - python3-setuptools
      - python3-pip
    post-cache:
      - pip3 install pygithub
      - export GOOS=linux
      - export GOARCH=amd64
      - make github-release
  release-linux-armv6:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - crossbuild-essential-armhf
      - gcc-arm-linux-gnueabihf
    post-cache:
      - export GOOS=linux
      - export GOARCH=arm
      - export CC=arm-linux-gnueabihf-gcc
      - make release
  github-release-linux-armv6:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - crossbuild-essential-armhf
      - gcc-arm-linux-gnueabihf
      - python3-setuptools
      - python3-pip
    post-cache:
      - pip3 install pygithub
      - export GOOS=linux
      - export GOARCH=arm
      - export CC=arm-linux-gnueabihf-gcc
      - make github-release
  release-linux-386:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - gcc-multilib
    post-cache:
      - export GOOS=linux
      - export GOARCH=386
      - make release
  github-release-linux-386:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - gcc-multilib
      - python3-setuptools
      - python3-pip
    post-cache:
      - pip3 install pygithub
      - export GOOS=linux
      - export GOARCH=386
      - make github-release
  release-windows-amd64:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - gcc-mingw-w64
    post-cache:
      - export GOOS=windows
      - export GOARCH=amd64
      - export CC=x86_64-w64-mingw32-gcc
      - make release
  github-release-windows-amd64:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - gcc-mingw-w64
      - python3-setuptools
      - python3-pip
    post-cache:
      - pip3 install pygithub
      - export GOOS=windows
      - export GOARCH=amd64
      - export CC=x86_64-w64-mingw32-gcc
      - make github-release
  release-windows-386:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - gcc-mingw-w64
    post-cache:
      - export GOOS=windows
      - export GOARCH=386
      - export CC=i686-w64-mingw32-gcc-win32
      - make release
  github-release-windows-386:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - gcc-mingw-w64
      - python3-setuptools
      - python3-pip
    post-cache:
      - pip3 install pygithub
      - export GOOS=windows
      - export GOARCH=386
      - export CC=i686-w64-mingw32-gcc-win32
      - make github-release
  test:
    build_dir: *build_dir
    builddeps:
      - *pinned_go
      - build-essential
    post-cache:
      - export GOOS=linux
      - export GOARCH=amd64
      # cd to a non-module directory: https://github.com/golang/go/issues/24250
      - (cd / && go get github.com/BurntSushi/go-sumtype)
      - export PATH="$HOME/go/bin:$PATH"
      - make test
  update-homebrew:
    builddeps:
      - openssh-client
      - s3cmd
    post-cache:
      - .teamcity/update-homebrew.sh

jessie: *stretch

buster: *stretch

centos-7:
  publish-rpm:
    build_dir: *build_dir
    builddeps:
      - https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    post-cache:
      - sudo yum install -y fakeroot
      - wget https://golang.org/dl/go1.12.9.linux-amd64.tar.gz -P /tmp/
      - sudo tar -C /usr/local -xzf /tmp/go1.12.9.linux-amd64.tar.gz
      - export PATH=$PATH:/usr/local/go/bin
      - export GOOS=linux
      - export GOARCH=amd64
      - make publish-rpm

# cfsetup compose
default-stack: test_dbconnect
test_dbconnect:
  compose:
    up-args:
      - --renew-anon-volumes
      - --abort-on-container-exit
      - --exit-code-from=cloudflared
    files:
      - dbconnect_tests/dbconnect.yaml
