https://github.com/linuxsuren/easy-releaser
https://github.com/linuxsuren/easy-releaser
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/linuxsuren/easy-releaser
- Owner: LinuxSuRen
- License: apache-2.0
- Created: 2024-04-22T07:41:32.000Z (almost 2 years ago)
- Default Branch: feat/artifact
- Last Pushed: 2024-07-17T12:28:04.000Z (over 1 year ago)
- Last Synced: 2025-01-21T17:39:30.900Z (about 1 year ago)
- Language: Go
- Size: 5.84 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://codecov.io/gh/kubesphere-sigs/ks-releaser)

This project aims to help to release a project which especially has multiple git repositories.
## Features
* Support to create a tag for a git repository
* Support to create a release (or pre-release) for [a GitHub repository](docs/github.md)
* Metrics support for the release action count
* Support to integrate with GitOps framework (such as [Argo CD](https://github.com/argoproj/argo-cd))
## Installation
Install it to a Kubernetes cluster. You can use [kubekey](https://github.com/kubesphere/kubekey) or [ks CLI](https://github.com/kubesphere-sigs/ks).
### Requirement
* [cert-manager](docs/cert-manager.md)
### For local environment
```shell
make deploy
```
### For production environment
```shell
kubectl apply -f https://github.com/kubesphere-sigs/ks-releaser/releases/latest/download/install.yaml
```
or install it without ServiceMonitor
```shell
kubectl apply -f https://github.com/kubesphere-sigs/ks-releaser/releases/latest/download/install-no-monitor.yaml
```
## How to use
Create a secret for your git repositories with name `test-git`, such as:
```yaml
apiVersion: v1
stringData:
password: admin
username: admin
kind: Secret
metadata:
name: test-git
namespace: default
type: "kubernetes.io/basic-auth"
```
Create a Kubernetes custom resource with the following example:
```yaml
apiVersion: devops.kubesphere.io/v1alpha1
kind: Releaser
metadata:
name: releaser-sample
spec:
repositories:
- name: test
address: https://gitee.com/linuxsuren/test
branch: master
secret:
name: test-git
namespace: default
```
### Integration with ArgoCD
Please provide the corresponding git repository if you want to use GitOps way.
```yaml
apiVersion: devops.kubesphere.io/v1alpha1
kind: Releaser
metadata:
name: releaser-sample
spec:
gitOps:
enable: true
repository:
address: https://gitee.com/linuxsuren/linuxsuren-releaser
branch: master
name: test
repositories:
- name: test
address: https://gitee.com/linuxsuren/test
branch: master
secret:
name: test-git
namespace: default
```
Wait for a while, you can check your git repositories to see if there is a new git tag over there.