kind: pipeline
name: Build
type: docker

steps:
  - name: "Quality Control"
    image: cortezaproject/corteza-server-builder:1.15
    pull: always
    commands:
      - make test.unit

  - name: "Build release (tag)"
    image: cortezaproject/corteza-server-builder:1.15
    environment:
      RELEASE_SFTP_KEY: { from_secret: RELEASE_SFTP_KEY }
      RELEASE_SFTP_URI: { from_secret: RELEASE_SFTP_URI }
    commands:
    - make release-clean release BUILD_OS=linux BUILD_ARCH=amd64 BUILD_VERSION=${DRONE_TAG}
#    - make release-clean release BUILD_OS=darwin BUILD_ARCH=amd64 BUILD_VERSION=${DRONE_TAG}
#    - make release-clean release BUILD_OS=windows BUILD_ARCH=amd64 BUILD_VERSION=${DRONE_TAG}
    - make upload
    when:
      event: [ tag ]
      ref:
      - refs/tags/20??.3.*
      - refs/tags/20??.6.*
      - refs/tags/20??.9.*
      - refs/tags/20??.12.*

---

kind: pipeline
name: Integration
type: docker

steps:
  - name: test
    image: cortezaproject/corteza-server-builder:1.15
    pull: always
    environment:
      GOFLAGS: -mod=vendor
      CGO_ENABLED: 1
      GOOS: linux
      GOARCH: amd64
      CI: circleci

      # Corteza basics
      AUTH_OIDC_ENABLED: 0
      AUTH_JWT_SECRET: FBjddkvwQib0d4usifnEGVr1bncuVeD7
      CORREDOR_CLIENT_CERTIFICATES_ENABLED: false
      CORREDOR_ENABLED: false

      # Storage backends
      DB_DSN: sqlite3://file::memory:?cache=shared&mode=memory
      # for now, we only run Store tests with SQLite
      RDBMS_SQLITE_DSN: sqlite3://file::memory:?cache=shared&mode=memory
    commands:
      - make test.coverprofile.all

  - name: coverage
    image: plugins/codecov
    settings:
      token: 628a7104-4ec8-46ef-a3a8-50b0c2507082
      files:
       - .cover.out

trigger:
  event:
    exclude: [ pull_request ]