distributable:
  url: https://github.com/bytebase/bytebase/archive/refs/tags/{{version.tag}}.tar.gz
  strip-components: 1

versions:
  github: bytebase/bytebase

dependencies:
  nodejs.org: '>=20.10'

platforms:
  - linux
  - darwin/aarch64
# this changed in 2.16.0:
# case runtime.GOOS == "darwin" && runtime.GOARCH == "arm64":
# 	tarName = "mongoutil-1.6.1-darwin-arm64.txz"
# case runtime.GOOS == "linux" && runtime.GOARCH == "amd64":
# 	tarName = "mongoutil-1.6.1-linux-amd64.txz"
# case runtime.GOOS == "linux" && runtime.GOARCH == "arm64":
# 	tarName = "mongoutil-1.6.1-linux-arm64.txz"
# default:
# 	return "", "", errors.Errorf("unsupported platform: %s/%s", runtime.GOOS, runtime.GOARCH)

build:
  dependencies:
    go.dev: ~1.22
    pnpm.io: '*'
    linux:
      kerberos.org: 1 # added in 2.16.0
      # error: invalid linker name in argument '-fuse-ld=gold'
      gnu.org/gcc: '*'
  script:
    # otherwise segfaults
    - run: sed -i 's/-ldflags "/-ldflags "-buildmode=pie /' build_bytebase.sh
      if: linux
      working-directory: scripts
    - ./scripts/build_bytebase.sh {{prefix}}/bin

provides:
  - bin/bytebase

test:
  dependencies:
    curl.se: '*'
    pkgx.sh: ^1
  script:
    - bytebase version | grep {{version}}
    # we'd love to test this more on linux, but we have issues running initdb as root;
    # so, we'll satisfy ourselves with the above and testing on darwin
    - run: exit 0
      if: linux

    - FREE_PORT=$(pkgx get-port | tail -n1)
    - bytebase --port $FREE_PORT > out.log 2>&1 &
    - PID=$!
    - sleep 35
    - curl -L http://localhost:$FREE_PORT | grep 'Bytebase' || cat out.log
    - kill $PID
    - cat out.log | grep "has started on port $FREE_PORT"
