version: 2 before: hooks: - go mod download builds: - env: - CGO_ENABLED=0 mod_timestamp: '{{ .CommitTimestamp }}' flags: - -trimpath ldflags: - '-s -w' - -X github.com/databricks/cli/internal/build.buildProjectName={{ .ProjectName }} - -X github.com/databricks/cli/internal/build.buildVersion={{ .Version }} # Git information - -X github.com/databricks/cli/internal/build.buildBranch={{ .Branch }} - -X github.com/databricks/cli/internal/build.buildTag={{ .Tag }} - -X github.com/databricks/cli/internal/build.buildShortCommit={{ .ShortCommit }} - -X github.com/databricks/cli/internal/build.buildFullCommit={{ .FullCommit }} - -X github.com/databricks/cli/internal/build.buildCommitTimestamp={{ .CommitTimestamp }} - -X github.com/databricks/cli/internal/build.buildSummary={{ .Summary }} # Version information - -X github.com/databricks/cli/internal/build.buildMajor={{ .Major }} - -X github.com/databricks/cli/internal/build.buildMinor={{ .Minor }} - -X github.com/databricks/cli/internal/build.buildPatch={{ .Patch }} - -X github.com/databricks/cli/internal/build.buildPrerelease={{ .Prerelease }} - -X github.com/databricks/cli/internal/build.buildIsSnapshot={{ .IsSnapshot }} - -X github.com/databricks/cli/internal/build.buildTimestamp={{ .Timestamp }} goos: - windows - linux - darwin goarch: - amd64 - arm64 binary: databricks archives: - format: zip # Include version in archive only for release builds and not for snapshot builds. # Snapshot archives must have a stable file name such that the artifacts in the nightly # release are automatically overwritten. If the snapshot version is included in the # file name then additional logic to clean up older builds would be needed. name_template: 'databricks_cli_{{ if not .IsSnapshot }}{{ .Version }}_{{ end }}{{ .Os }}_{{ .Arch }}' dockers: - id: arm64 goarch: arm64 # We need to use buildx to build arm64 image on a amd64 machine. use: buildx image_templates: # Docker tags can't have "+" in them, so we replace it with "-" - 'ghcr.io/databricks/cli:{{replace .Version "+" "-"}}-arm64' - 'ghcr.io/databricks/cli:latest-arm64' build_flag_templates: - "--build-arg=ARCH=arm64" - "--platform=linux/arm64" extra_files: - "./docker/config.tfrc" - "./docker/setup.sh" - id: amd64 goarch: amd64 use: buildx image_templates: # Docker tags can't have "+" in them, so we replace it with "-" - 'ghcr.io/databricks/cli:{{replace .Version "+" "-"}}-amd64' - 'ghcr.io/databricks/cli:latest-amd64' build_flag_templates: - "--build-arg=ARCH=amd64" - "--platform=linux/amd64" extra_files: - "./docker/config.tfrc" - "./docker/setup.sh" docker_manifests: - name_template: ghcr.io/databricks/cli:{{replace .Version "+" "-"}} image_templates: - ghcr.io/databricks/cli:{{replace .Version "+" "-"}}-amd64 - ghcr.io/databricks/cli:{{replace .Version "+" "-"}}-arm64 - name_template: ghcr.io/databricks/cli:latest image_templates: - ghcr.io/databricks/cli:latest-amd64 - ghcr.io/databricks/cli:latest-arm64 checksum: name_template: 'databricks_cli_{{ .Version }}_SHA256SUMS' algorithm: sha256 snapshot: name_template: '{{ incpatch .Version }}-dev+{{ .ShortCommit }}' changelog: sort: asc filters: exclude: - '^docs:' - '^test:'