github.com/authzed/spicedb@v1.32.1-0.20240520085336-ebda56537386/.goreleaser.yml (about)

     1  ---
     2  git:
     3    tag_sort: "-version:creatordate"
     4    prerelease_suffix: "-"
     5  before:
     6    hooks:
     7      - "go run mage.go gen:completions"
     8  builds:
     9    - main: "./cmd/spicedb"
    10      env:
    11        - "CGO_ENABLED=0"
    12      goos:
    13        - "linux"
    14        - "windows"
    15        - "darwin"
    16      goarch:
    17        - "amd64"
    18        - "arm64"
    19      mod_timestamp: "{{ .CommitTimestamp }}"
    20      ldflags:
    21        - "-s -w"
    22        - "-X github.com/jzelinskie/cobrautil/v2.Version=v{{ .Version }}"
    23  archives:
    24    - files:
    25        - "README.md"
    26        - "LICENSE"
    27        - "completions/*"
    28  nfpms:
    29    - vendor: "authzed inc."
    30      homepage: "https://spicedb.io"
    31      maintainer: "authzed <support@authzed.com>"
    32      description: "SpiceDB is a Zanzibar-inspired database that stores, computes, and validates application permissions."
    33      license: "Apache 2.0"
    34      epoch: "0"
    35      formats:
    36        - "apk"
    37        - "deb"
    38        - "rpm"
    39      contents:
    40        - src: "./completions/spicedb.bash"
    41          dst: "/usr/share/bash-completion/completions/spicedb"
    42          file_info:
    43            mode: 0644
    44        - src: "./completions/spicedb.fish"
    45          dst: "/usr/share/fish/vendor_completions.d/spicedb.fish"
    46          file_info:
    47            mode: 0644
    48        - src: "./completions/spicedb.zsh"
    49          dst: "/usr/share/zsh/vendor-completions/_spicedb"
    50          file_info:
    51            mode: 0644
    52  furies:
    53    - account: "authzed"
    54      secret_name: "GEMFURY_PUSH_TOKEN"
    55      disable: "{{ gt (len .Prerelease) 0 }}"
    56  snapcrafts:
    57    - name: "spicedb"
    58      publish: true
    59      summary: "A database that stores, computes, and validates application permissions"
    60      description: |
    61        SpiceDB is an open source, Google Zanzibar-inspired database for creating and managing security-critical application permissions.
    62  
    63        Developers create a schema and use client libraries to apply the schema to the database, insert relationships into the database, and query the database to efficiently check permissions in their applications.
    64      grade: "stable"
    65      confinement: "strict"
    66      license: "Apache-2.0"
    67      base: "core22"
    68      apps:
    69        spicedb:
    70          command: "spicedb"
    71          completer: "completions/spicedb.bash"
    72          plugs:
    73            - "network-bind"
    74            - "network"
    75  brews:
    76    - name: "{{.ProjectName}}"
    77      repository:
    78        owner: "authzed"
    79        name: "homebrew-tap"
    80        token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
    81      url_template: "https://github.com/authzed/spicedb/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
    82      download_strategy: "CurlDownloadStrategy"
    83      commit_author:
    84        name: "authzedbot"
    85        email: "infrastructure@authzed.com"
    86      commit_msg_template: "Brew formula update for {{ .ProjectName }} version {{ .Tag }}"
    87      homepage: "https://authzed.com/"
    88      description: "SpiceDB is a Zanzibar-inspired database that stores, computes, and validates application permissions."
    89      license: "Apache-2.0"
    90      directory: "Formula"
    91      skip_upload: "auto"
    92      custom_block: |
    93        head "https://github.com/authzed/spicedb.git", :branch => "main"
    94      dependencies:
    95        - name: "go"
    96          type: "build"
    97      test: |
    98        system "#{bin}/spicedb version"
    99      install: |
   100        if !File.exists? "spicedb"
   101          system "go build --ldflags \"-s -w -X github.com/jzelinskie/cobrautil/v2.Version=$(git describe --always --abbrev=7 --dirty --tags)\" ./cmd/spicedb"
   102        end
   103        bin.install "spicedb"
   104        (bash_completion/"spicedb").write Utils.safe_popen_read("#{bin}/spicedb", "completion", "bash")
   105        (zsh_completion/"_spicedb").write Utils.safe_popen_read("#{bin}/spicedb", "completion", "zsh")
   106        (fish_completion/"spicedb.fish").write Utils.safe_popen_read("#{bin}/spicedb", "completion", "fish")
   107    - name: "{{.ProjectName}}@{{.Version}}"
   108      repository:
   109        owner: "authzed"
   110        name: "homebrew-tap"
   111        token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
   112      url_template: "https://github.com/authzed/spicedb/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
   113      download_strategy: "CurlDownloadStrategy"
   114      commit_author:
   115        name: "authzedbot"
   116        email: "infrastructure@authzed.com"
   117      commit_msg_template: "Brew formula update for {{ .ProjectName }} version {{ .Tag }}"
   118      homepage: "https://authzed.com/"
   119      description: "SpiceDB is a Zanzibar-inspired database that stores, computes, and validates application permissions."
   120      license: "Apache-2.0"
   121      directory: "Formula"
   122      skip_upload: "auto"
   123      custom_block: |
   124        head "https://github.com/authzed/spicedb.git", :branch => "main"
   125      dependencies:
   126        - name: "go"
   127          type: "build"
   128      test: |
   129        system "#{bin}/spicedb version"
   130      install: |
   131        if !File.exists? "spicedb"
   132          system "go build --ldflags \"-s -w -X github.com/jzelinskie/cobrautil/v2.Version=$(git describe --always --abbrev=7 --dirty --tags)\" ./cmd/spicedb"
   133        end
   134        bin.install "spicedb"
   135        bash_completion.install "completions/spicedb.bash" => "spicedb"
   136        zsh_completion.install "completions/spicedb.zsh" => "_spicedb"
   137        fish_completion.install "completions/spicedb.fish"
   138  dockers:
   139    # AMD64
   140    - image_templates:
   141        - &amd_image_quay "quay.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-amd64"
   142        - &amd_image_gh "ghcr.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-amd64"
   143        - &amd_image_dh "authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-amd64"
   144      dockerfile: &dockerfile "Dockerfile.release"
   145      goos: "linux"
   146      goarch: "amd64"
   147      use: "buildx"
   148      build_flag_templates:
   149        - "--platform=linux/amd64"
   150    # AMD64 (debug)
   151    - image_templates:
   152        - &amd_debug_image_quay "quay.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-amd64-debug"
   153        - &amd_debug_image_gh "ghcr.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-amd64-debug"
   154        - &amd_debug_image_dh "authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-amd64-debug"
   155      dockerfile: &dockerfile "Dockerfile.release"
   156      goos: "linux"
   157      goarch: "amd64"
   158      use: "buildx"
   159      build_flag_templates:
   160        - "--platform=linux/amd64"
   161        - "--build-arg=BASE=cgr.dev/chainguard/busybox"
   162    # ARM64
   163    - image_templates:
   164        - &arm_image_quay "quay.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-arm64"
   165        - &arm_image_gh "ghcr.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-arm64"
   166        - &arm_image_dh "authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-arm64"
   167      dockerfile: *dockerfile
   168      goos: "linux"
   169      goarch: "arm64"
   170      use: "buildx"
   171      build_flag_templates:
   172        - "--platform=linux/arm64"
   173    # ARM64 (debug)
   174    - image_templates:
   175        - &arm_debug_image_quay "quay.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-arm64-debug"
   176        - &arm_debug_image_gh "ghcr.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-arm64-debug"
   177        - &arm_debug_image_dh "authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-arm64-debug"
   178      dockerfile: *dockerfile
   179      goos: "linux"
   180      goarch: "arm64"
   181      use: "buildx"
   182      build_flag_templates:
   183        - "--platform=linux/arm64"
   184        - "--build-arg=BASE=cgr.dev/chainguard/busybox"
   185  docker_manifests:
   186    # Quay
   187    - name_template: "quay.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}"
   188      image_templates: [*amd_image_quay, *arm_image_quay]
   189    - name_template: "quay.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:latest"
   190      image_templates: [*amd_image_quay, *arm_image_quay]
   191    # GitHub Registry
   192    - name_template: "ghcr.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}"
   193      image_templates: [*amd_image_gh, *arm_image_gh]
   194    - name_template: "ghcr.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:latest"
   195      image_templates: [*amd_image_gh, *arm_image_gh]
   196    # Docker Hub
   197    - name_template: "authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}"
   198      image_templates: [*amd_image_dh, *arm_image_dh]
   199    - name_template: "authzed/spicedb{{ if .IsNightly }}-git{{ end }}:latest"
   200      image_templates: [*amd_image_dh, *arm_image_dh]
   201  
   202    # Debug Images:
   203  
   204    # Quay (debug)
   205    - name_template: "quay.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-debug"
   206      image_templates: [*amd_debug_image_quay, *arm_debug_image_quay]
   207    - name_template: "quay.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:latest-debug"
   208      image_templates: [*amd_debug_image_quay, *arm_debug_image_quay]
   209    # GitHub Registry
   210    - name_template: "ghcr.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-debug"
   211      image_templates: [*amd_debug_image_gh, *arm_debug_image_gh]
   212    - name_template: "ghcr.io/authzed/spicedb{{ if .IsNightly }}-git{{ end }}:latest-debug"
   213      image_templates: [*amd_debug_image_gh, *arm_debug_image_gh]
   214    # Docker Hub
   215    - name_template: "authzed/spicedb{{ if .IsNightly }}-git{{ end }}:v{{ .Version }}-debug"
   216      image_templates: [*amd_debug_image_dh, *arm_debug_image_dh]
   217    - name_template: "authzed/spicedb{{ if .IsNightly }}-git{{ end }}:latest-debug"
   218      image_templates: [*amd_debug_image_dh, *arm_debug_image_dh]
   219  checksum:
   220    name_template: "checksums.txt"
   221  snapshot:
   222    name_template: "{{ incpatch .Version }}-next"
   223  changelog:
   224    use: "github-native"
   225    sort: "asc"
   226  nightly:
   227    name_template: "{{ incpatch .Version }}-{{ .ShortCommit }}"
   228  release:
   229    draft: false
   230    prerelease: "auto"
   231    mode: "replace"
   232    footer: |
   233      ## Docker Images
   234      This release is available at `authzed/spicedb:v{{ .Version }}`, `quay.io/authzed/spicedb:v{{ .Version }}`, `ghcr.io/authzed/spicedb:v{{ .Version }}`