language: go
go:
- 1.13
jobs:
  include:
  - os: linux
    arch: ppc64le
    env:
      MAKE: make
  - os: linux
    arch: s390x
    env:
      MAKE: make
  - os: linux
    dist: xenial
    env:
      MAKE: make
  - os: linux
    dist: xenial
    env:
      MAKE: make
  - os: osx
    install: |
      brew install make
    env:
      MAKE: make
  - os: windows
    env:
      MAKE: mingw32-make
  - os: linux
    dist: xenial
    env:
      MAKE: make
      TEST: e2e
    install: |
      curl -sLo minikube "$(curl -sL https://api.github.com/repos/kubernetes/minikube/releases/latest | jq -r '[.assets[] | select(.name == "minikube-linux-amd64")] | first | .browser_download_url')"
      chmod +x minikube
      sudo mv minikube /bin/
      minikube config set vm-driver none
      minikube config set kubernetes-version $(go list -f '{{.Version}}' -m k8s.io/api | sed 's/^v0\./v1./')
addons:
  apt:
    sources:
    - sourceline: 'ppa:projectatomic/ppa'
    update: true
    packages:
    - podman
    - conntrack
script: |
  "${MAKE}" unit build
  if [[ "$TEST" == "e2e" ]]; then
    sudo minikube start # vm-driver=none requires root
    sudo chown -R "$USER" "$HOME/.kube" "$HOME/.minikube"
    KUBECONFIG="$HOME/.kube/config" make e2e
  fi
notifications:
  email: false
before_deploy:
- ls bin | xargs -n1 -I{} mv bin/{} "bin/$(go env GOOS)-$(go env GOARCH)-{}"
deploy:
  provider: releases
  edge: true
  token:
    secure: 1mcUdIu9BBQloKWHEXIum9XFunDVDtWvbL5HuebsSJOlePTRnccBnhwwyxytkxO8bkWlB7RXRwa2JRKAOtrB2sgyvG4zthQeiyuq3qNRuZPyl/KxcHT5swYhwXaFy2kSmsG3WJy6Yx+Rw82yDelnyUkv2XcJODcU3Sf0CZIaYmCHmT9dFJ97yGd5x/Xbw+ApBIjRYQgL/NCXcvR/7ftIMUGcYc6zSMG9U6eWCvY28gZGhElvywbm51UuwOzK37jNKrp9xe4c+Fbp+7EqEUY4ooxCxX82PmJRDEcdjY0NLdafmPN40TA6oDB1873OEIWCa7+Lfn5k+X+JTcV/rPOfOIRB0vS04m5HWJONu4gNHB5lYl3DRHonbhF4X/hzkujlFGkWB/3XDwSj9X88McL0P7mwZsXV5KsiH7kqH3FTzlH2Fm3OTHhBOEJ1s+OEcwRlBRahh8LfzD6Da7BNncSWi2zdc7erD5WVmeiJngZXzGquo3Ly3GWB9Pfkd0rriclHC0CmIj5EeD7NBnrCu18dwdlKRR5L18dUmoLV1I/IUh0BIn0i7CNt3iw15LVX4Lk6wz2JzEfytGQ3GzfIf4cPjmGqIYwlOUuyiht7AyEUg3QIBiqTbU/PL+krvFhAtf3RkD7/5+NZF6VF4p4hYXJN0sGq3XOsN7Ol1nVvc6RpAlk=
  file_glob: true
  file: bin/**/*-opm
  cleanup: false
  on:
    repo: operator-framework/operator-registry
    tags: true