# This is an example .goreleaser.yml file with some sensible defaults.
# Make sure to check the documentation at https://goreleaser.com
before :
hooks :
# You may remove this if you don't use go modules.
- make tidy
- make copyright.add
# you may remove this if you don't need go generate
- go generate ./...
snapshot :
name_template : "{{ incpatch .Version }}-next"
# gomod:
# proxy: true
report_sizes : true
# metadata:
# mod_timestamp: "{{ .CommitTimestamp }}"
builds :
- binary : openim-api
id : openim-api
main : ./cmd/openim-api/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-cmdutils
id : openim-cmdutils
main : ./cmd/openim-cmdutils/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-crontask
id : openim-crontask
main : ./cmd/openim-crontask/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-msggateway
id : openim-msggateway
main : ./cmd/openim-msggateway/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-msgtransfer
id : openim-msgtransfer
main : ./cmd/openim-msgtransfer/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-push
id : openim-push
main : ./cmd/openim-push/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-rpc-auth
id : openim-rpc-auth
main : ./cmd/openim-rpc/openim-rpc-auth/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-rpc-conversation
id : openim-rpc-conversation
main : ./cmd/openim-rpc/openim-rpc-conversation/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-rpc-friend
id : openim-rpc-friend
main : ./cmd/openim-rpc/openim-rpc-friend/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-rpc-group
id : openim-rpc-group
main : ./cmd/openim-rpc/openim-rpc-group/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-rpc-msg
id : openim-rpc-msg
main : ./cmd/openim-rpc/openim-rpc-msg/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-rpc-third
id : openim-rpc-third
main : ./cmd/openim-rpc/openim-rpc-third/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
- binary : openim-rpc-user
id : openim-rpc-user
main : ./cmd/openim-rpc/openim-rpc-user/main.go
goos :
- darwin
- windows
- linux
goarch :
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm :
- "6"
- "7"
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
- CHANGELOG/*
- CONTRIBUTING.md
- docs/*
- 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 :
- "openimsdk/open-im-server:{{ .Tag }}-amd64"
- "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-amd64"
dockerfile : Dockerfile
use : buildx
build_flag_templates :
- "--pull"
- "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/OpenIMSDK/Open-IM-Server/main/README.md"
- "--label=io.artifacthub.package.logo-url=hhttps://github.com/OpenIMSDK/Open-IM-Server/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"
extra_files :
- scripts/entrypoint.sh
- image_templates :
- "goreleaser/goreleaser:{{ .Tag }}-arm64"
- "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-arm64"
dockerfile : Dockerfile
use : buildx
build_flag_templates :
- "--pull"
- "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/OpenIMSDK/Open-IM-Server/main/README.md"
- "--label=io.artifacthub.package.logo-url=hhttps://github.com/OpenIMSDK/Open-IM-Server/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"
goarch : arm64
extra_files :
- scripts/entrypoint.sh
docker_manifests :
- name_template : "goreleaser/goreleaser:{{ .Tag }}"
image_templates :
- "goreleaser/goreleaser:{{ .Tag }}-amd64"
- "goreleaser/goreleaser:{{ .Tag }}-arm64"
- name_template : "ghcr.io/goreleaser/goreleaser:{{ .Tag }}"
image_templates :
- "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-amd64"
- "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-arm64"
- name_template : "goreleaser/goreleaser:latest"
image_templates :
- "goreleaser/goreleaser:{{ .Tag }}-amd64"
- "goreleaser/goreleaser:{{ .Tag }}-arm64"
- name_template : "ghcr.io/goreleaser/goreleaser:latest"
image_templates :
- "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-amd64"
- "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-arm64"
nfpms :
- id : packages
builds :
- openim-api
- openim-cmdutils
- openim-crontask
- openim-msggateway
- openim-msgtransfer
- openim-push
- openim-rpc-auth
- openim-rpc-conversation
- openim-rpc-friend
- openim-rpc-group
- openim-rpc-msg
- openim-rpc-third
- openim-rpc-user
# Your app's vendor.
vendor : OpenIMSDK
homepage : https://github.com/OpenIMSDK/Open-IM-Server
maintainer : kubbot <https://github.com/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 : user
name : repo
# 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/{{ .Env.USERNAME }}/
# else
# echo "Skipping deployment: Non-production release detected"
# fi'
checksum :
name_template : "{{ .ProjectName }}_checksums.txt"
algorithm : sha256
release :
footer : |
**Full Changelog** : https://github.com/OpenIMSDK/Open-IM-Server/compare/{{ .PreviousTag }}...{{ .Tag }}
## Helping out
We release logs are recorded on [✨ CHANGELOG](https://github.com/OpenIMSDK/Open-IM-Server/blob/main/CHANGELOG/CHANGELOG.md)
This release is only possible thanks to **all** the support of some **awesome people**!
**Want to be one of them 😘?**
Contributions to this project are welcome! Please see [CONTRIBUTING.md](https://github.com/OpenIMSDK/Open-IM-Server/blob/main/CONTRIBUTING.md) for details.
<p align="center">
<a href="https://github.com/kubbot" style="float: left; margin-right: 10px;">
<img src="https://github.com/openimbot/openimbot/blob/main/assets/icon/blue%E9%80%8F%E6%98%8E.png" width="50" height="50" />
</a>
<a href="https://www.openim.online">
<img src="https://github.com/OpenIMSDK/Open-IM-Server/blob/main/assets/logo/openim-logo.png" />
</a>
<a href="https://github.com/openimbot" style="float: right; margin-left: 10px;">
<img src="https://github.com/openimbot/openimbot/blob/main/assets/icon/red%E9%80%8F%E6%98%8E.png" width="50" height="50" />
</a>
</p>
## 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-1tmoj26uf-_FDy3dowVHBiGvLk9e5Xkg) to join the Open-IM-Server 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 Open-IM-Server. 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! 🙌