# Copyright ยฉ 2023 OpenIM open source community. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # This is an example .goreleaser.yml file with some sensible defaults. # Make sure to check the documentation at https://goreleaser.com before: hooks: - make clean # You may remove this if you don't use go modules. - go mod tidy # you may remove this if you don't need go generate - go generate ./... git: # What should be used to sort tags when gathering the current and previous # tags if there are more than one tag in the same commit. # # Default: '-version:refname' tag_sort: -version:creatordate # What should be used to specify prerelease suffix while sorting tags when gathering # the current and previous tags if there are more than one tag in the same commit. # # Since: v1.17 prerelease_suffix: "-" # Tags to be ignored by GoReleaser. # This means that GoReleaser will not pick up tags that match any of the # provided values as either previous or current tags. # # Templates: allowed. # Since: v1.21. ignore_tags: - nightly # - "{{.Env.IGNORE_TAG}}" report_sizes: true builds: - binary: chat-api id: chat-api main: ./cmd/api/chat-api/main.go goos: - darwin - linux - windows goarch: - amd64 - s390x - arm64 - ppc64le goarm: - "6" - "7" ignore: - goos: darwin goarch: s390x - goos: darwin goarch: ppc64le - goos: windows goarch: s390x - goos: windows goarch: arm64 - goos: windows goarch: ppc64le - binary: admin-api id: admin-api main: ./cmd/api/admin-api/main.go goos: - darwin - linux - windows goarch: - amd64 - s390x - arm64 - ppc64le goarm: - "6" - "7" ignore: - goos: darwin goarch: s390x - goos: darwin goarch: ppc64le - goos: windows goarch: s390x - goos: windows goarch: arm64 - goos: windows goarch: ppc64le - binary: chat-rpc id: chat-rpc main: ./cmd/rpc/chat-rpc/main.go goos: - darwin - linux - windows goarch: - amd64 - s390x - arm64 - ppc64le goarm: - "6" - "7" ignore: - goos: darwin goarch: s390x - goos: darwin goarch: ppc64le - goos: windows goarch: s390x - goos: windows goarch: arm64 - goos: windows goarch: ppc64le - binary: admin-rpc id: admin-rpc main: ./cmd/rpc/admin-rpc/main.go goos: - darwin - linux - windows goarch: - amd64 - s390x - arm64 - ppc64le goarm: - "6" - "7" ignore: - goos: darwin goarch: s390x - goos: darwin goarch: ppc64le - goos: windows goarch: s390x - goos: windows goarch: arm64 - goos: windows goarch: ppc64le archives: - format: tar.gz # this name template makes the OS and Arch compatible with the results of uname. name_template: >- {{ .ProjectName }}_ {{- title .Os }}_ {{- if eq .Arch "amd64" }}x86_64 {{- else if eq .Arch "386" }}i386 {{- else }}{{ .Arch }}{{ end }} {{- if .Arm }}v{{ .Arm }}{{ end }} # use zip for windows archives files: - LICENSE - README.md - docs/* # a more complete example, check the globbing deep dive below - src: "*.md" dst: docs # Strip parent folders when adding files to the archive. strip_parent: true # File info. # Not all fields are supported by all formats available formats. # # Default: copied from the source file info: # Templates: allowed (since v1.14) owner: root # Templates: allowed (since v1.14) group: root # Must be in time.RFC3339Nano format. # # Templates: allowed (since v1.14) mtime: "{{ .CommitDate }}" # File mode. mode: 0644 format_overrides: - goos: windows format: zip changelog: sort: asc use: github filters: exclude: - "^test:" - "^chore" - "merge conflict" - Merge pull request - Merge remote-tracking branch - Merge branch - go mod tidy groups: - title: Dependency updates regexp: '^.*?(feat|fix)\(deps\)!?:.+$' order: 300 - title: "New Features" regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$' order: 100 - title: "Security updates" regexp: '^.*?sec(\([[:word:]]+\))??!?:.+$' order: 150 - title: "Bug fixes" regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$' order: 200 - title: "Documentation updates" regexp: ^.*?doc(\([[:word:]]+\))??!?:.+$ order: 400 - title: "Build process updates" regexp: ^.*?build(\([[:word:]]+\))??!?:.+$ order: 400 - title: Other work order: 9999 # dockers: # - image_templates: # - "openim/openim-chat-api-chat:{{ .Tag }}-amd64" # - "ghcr.io/openimsdk/openim-chat-api-chat:{{ .Tag }}-amd64" # - "registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat-api-chat:{{ .Tag }}-amd64" # build_flag_templates: # - "--pull" # - "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/OpenIMSDK/chat/main/README.md" # - "--label=io.artifacthub.package.logo-url=hhttps://git.imall.cloud/openim/chat/blob/main/assets/logo/openim-logo-green.png" # - '--label=io.artifacthub.package.maintainers=[{"name":"Xinwei Xiong","email":"3293172751nss@gmail.com"}]' # - "--label=io.artifacthub.package.license=Apace-2.0" # - "--label=org.opencontainers.image.description=OpenIM Open source top instant messaging system" # - "--label=org.opencontainers.image.created={{.Date}}" # - "--label=org.opencontainers.image.name={{.ProjectName}}" # - "--label=org.opencontainers.image.revision={{.FullCommit}}" # - "--label=org.opencontainers.image.version={{.Version}}" # - "--label=org.opencontainers.image.source={{.GitURL}}" # - "--platform=linux/amd64" # goos: linux # goarch: amd64 # dockerfile: ./build/images/api-chat/Dockerfile # use: buildx # - image_templates: # - "openim/openim-chat-api-chat:{{ .Tag }}-arm64" # - "ghcr.io/openimsdk/openim-chat-api-chat:{{ .Tag }}-arm64" # - "registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat-api-chat:{{ .Tag }}-arm64" # build_flag_templates: # - "--pull" # - "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/OpenIMSDK/chat/main/README.md" # - "--label=io.artifacthub.package.logo-url=hhttps://git.imall.cloud/openim/chat/blob/main/assets/logo/openim-logo-green.png" # - '--label=io.artifacthub.package.maintainers=[{"name":"Xinwei Xiong","email":"3293172751nss@gmail.com"}]' # - "--label=io.artifacthub.package.license=Apace-2.0" # - "--label=org.opencontainers.image.description=OpenIM Open source top instant messaging system" # - "--label=org.opencontainers.image.created={{.Date}}" # - "--label=org.opencontainers.image.name={{.ProjectName}}" # - "--label=org.opencontainers.image.revision={{.FullCommit}}" # - "--label=org.opencontainers.image.version={{.Version}}" # - "--label=org.opencontainers.image.source={{.GitURL}}" # - "--platform=linux/arm64" # goos: linux # goarch: arm64 # dockerfile: ./build/images/api-chat/Dockerfile # use: buildx # - image_templates: # - "openim/openim-chat-api-admin:{{ .Tag }}-amd64" # - "ghcr.io/openimsdk/openim-chat-api-admin:{{ .Tag }}-amd64" # - "registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat-api-admin:{{ .Tag }}-amd64" # build_flag_templates: # - "--pull" # - "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/OpenIMSDK/chat/main/README.md" # - "--label=io.artifacthub.package.logo-url=hhttps://git.imall.cloud/openim/chat/blob/main/assets/logo/openim-logo-green.png" # - '--label=io.artifacthub.package.maintainers=[{"name":"Xinwei Xiong","email":"3293172751nss@gmail.com"}]' # - "--label=io.artifacthub.package.license=Apace-2.0" # - "--label=org.opencontainers.image.description=OpenIM Open source top instant messaging system" # - "--label=org.opencontainers.image.created={{.Date}}" # - "--label=org.opencontainers.image.name={{.ProjectName}}" # - "--label=org.opencontainers.image.revision={{.FullCommit}}" # - "--label=org.opencontainers.image.version={{.Version}}" # - "--label=org.opencontainers.image.source={{.GitURL}}" # - "--platform=linux/amd64" # goos: linux # goarch: amd64 # dockerfile: ./build/images/api-admin/Dockerfile # use: buildx # - image_templates: # - "openim/openim-chat-api-admin:{{ .Tag }}-arm64" # - "ghcr.io/openimsdk/openim-chat-api-admin:{{ .Tag }}-arm64" # - "registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat-api-admin:{{ .Tag }}-arm64" # build_flag_templates: # - "--pull" # - "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/OpenIMSDK/chat/main/README.md" # - "--label=io.artifacthub.package.logo-url=hhttps://git.imall.cloud/openim/chat/blob/main/assets/logo/openim-logo-green.png" # - '--label=io.artifacthub.package.maintainers=[{"name":"Xinwei Xiong","email":"3293172751nss@gmail.com"}]' # - "--label=io.artifacthub.package.license=Apace-2.0" # - "--label=org.opencontainers.image.description=OpenIM Open source top instant messaging system" # - "--label=org.opencontainers.image.created={{.Date}}" # - "--label=org.opencontainers.image.name={{.ProjectName}}" # - "--label=org.opencontainers.image.revision={{.FullCommit}}" # - "--label=org.opencontainers.image.version={{.Version}}" # - "--label=org.opencontainers.image.source={{.GitURL}}" # - "--platform=linux/arm64" # goos: linux # goarch: arm64 # dockerfile: ./build/images/api-admin/Dockerfile # use: buildx # docker_manifests: # - name_template: "openim/openim-chat-api-admin:{{ .Tag }}" # image_templates: # - "openim/openim-chat-api-admin:{{ .Tag }}-amd64" # - "openim/openim-chat-api-admin:{{ .Tag }}-arm64" # - name_template: "ghcr.io/openimsdk/openim-chat:{{ .Tag }}" # image_templates: # - "ghcr.io/openimsdk/openim-chat:{{ .Tag }}-amd64" # - "ghcr.io/openimsdk/openim-chat:{{ .Tag }}-arm64" # - name_template: "registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat-api-admin:{{ .Tag }}" # image_templates: # - "registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat-api-admin:{{ .Tag }}-amd64" # - "registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat-api-admin:{{ .Tag }}-arm64" # - name_template: "openim/openim-chat-api-admin:latest" # image_templates: # - "openim/openim-chat-api-chat:{{ .Tag }}-amd64" # - "openim/openim-chat-api-chat:{{ .Tag }}-arm64" # - name_template: "ghcr.io/openimsdk/openim-chat-api-chat:latest" # image_templates: # - "ghcr.io/openimsdk/openim-chat-api-chat:{{ .Tag }}-amd64" # - "ghcr.io/openimsdk/openim-chat-api-chat:{{ .Tag }}-arm64" # - name_template: "registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat-api-chat:latest" # image_templates: # - "registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat-api-chat:{{ .Tag }}-amd64" # - "registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat-api-chat:{{ .Tag }}-arm64" nfpms: - id: packages builds: - admin-api - chat-api - chat-rpc - admin-rpc # Your app's vendor. vendor: OpenIMSDK homepage: https://git.imall.cloud/openim/chat maintainer: kubbot description: |- Auto sync github labels kubbot && openimbot license: MIT formats: - apk - deb - rpm - termux.deb # Since: v1.11 - archlinux # Since: v1.13 dependencies: - git recommends: - golang # The lines beneath this are called `modelines`. See `:help modeline` # Feel free to remove those if you don't want/use them. # yaml-language-server: $schema=https://goreleaser.com/static/schema.json # vim: set ts=2 sw=2 tw=0 fo=cnqoj # Default: './dist' dist: ./_output/dist # # .goreleaser.yaml # milestones: # # You can have multiple milestone configs # - # # Repository for the milestone # # Default is extracted from the origin remote URL # repo: # owner: OpenIMSDK # name: chat # # Whether to close the milestone # close: true # # Fail release on errors, such as missing milestone. # fail_on_error: false # # Name of the milestone # # # Default: '{{ .Tag }}' # name_template: "Current Release" publishers: - name: "fury.io" ids: - packages dir: "{{ dir .ArtifactPath }}" cmd: | bash -c ' if [[ "{{ .Tag }}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then curl -F package=@{{ .ArtifactName }} https://{{ .Env.FURY_TOKEN }}@push.fury.io/openim/ else echo "Skipping deployment: Non-production release detected" fi' # snapcrafts: # - name_template: "{{ .ProjectName }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}" # summary: openim is open source instant messaging # description: | # OpenIM yyds # grade: stable # confinement: classic # publish: true checksum: name_template: "{{ .ProjectName }}_checksums.txt" algorithm: sha256 snapshot: name_template: "{{ .Tag }}-next" release: prerelease: auto footer: | ## Welcome to the {{ .Tag }} release of [chat](https://git.imall.cloud/openim/chat)!๐ŸŽ‰๐ŸŽ‰! **Full Changelog**: https://git.imall.cloud/openim/chat/compare/{{ .PreviousTag }}...{{ .Tag }} ## Helping out + We release logs are recorded on [โœจ CHANGELOG](https://github.com/openimsdk/Open-IM-Server/blob/main/CHANGELOG/CHANGELOG.md) + For information on versions of OpenIM and how to maintain branches, read [๐Ÿ“šthis article](https://github.com/openimsdk/Open-IM-Server/blob/main/docs/conversions/version.md) + If you wish to use mirroring, read OpenIM's [image management policy](https://github.com/openimsdk/Open-IM-Server/blob/main/docs/conversions/images.md) **Want to be one of them ๐Ÿ˜˜?**

> **Note** > @openimbot and @kubbot have made great contributions to the community as community ๐Ÿค–robots(@openimsdk/bot), respectively. > Thanks to the @openimsdk/openim team for all their hard work on this release. > Thank you to all the [๐Ÿ’•developers and contributors](https://git.imall.cloud/openim/chat/graphs/contributors), people from all over the world, OpenIM brings us together > Contributions to this project are welcome! Please see [CONTRIBUTING.md](https://github.com/openimsdk/Open-IM-Server/blob/main/CONTRIBUTING.md) for details. ## Get Involved with OpenIM! **Here are some ways to get involved with the OpenIM community:** ๐Ÿ“ข **Slack Channel**: Join our Slack channels for discussions, communication, and support. Click [here](https://join.slack.com/t/openimsdk/shared_invite/zt-2ijy1ys1f-O0aEDCr7ExRZ7mwsHAVg9A) to join the chat Slack team channel. ๐Ÿ“ง **Gmail Contact**: If you have any questions, suggestions, or feedback for our open-source projects, please feel free to [contact us via email](https://mail.google.com/mail/?view=cm&fs=1&tf=1&to=winxu81@gmail.com). ๐Ÿ“– **Blog**: Stay up-to-date with OpenIM-Server projects and trends by reading our [blog](https://doc.rentsoft.cn/). We share the latest developments, tech trends, and other interesting information related to OpenIM. ๐Ÿ“ฑ **WeChat**: Add us on WeChat (QR Code) and indicate that you are a user or developer of chat. We'll process your request as soon as possible. Remember, your contributions play a vital role in making OpenIM successful, and we look forward to your active participation in our community! ๐Ÿ™Œ # webhook # announce: # slack: # enabled: false # message_template: "slack {{ .Tag }} is out! Check it out: https://github.com/openimsdk/Open-IM-Server/releases/tag/{{ .Tag }}"