feat: setup readme (#2)
Reviewed-on: #2 Co-authored-by: Jan Klattenhoff <jan@kjan.email> Co-committed-by: Jan Klattenhoff <jan@kjan.email>
94
README.md
|
@ -1,2 +1,94 @@
|
|||
# ci-template
|
||||
# CI Template
|
||||
|
||||
A template repository for setting up continuous integration and automatic semantic versioning with Gitea.
|
||||
|
||||
## Features
|
||||
|
||||
- Automated semantic versioning with [semantic-release](https://github.com/semantic-release/semantic-release)
|
||||
- Integration with Gitea for releases
|
||||
- Changelog generation
|
||||
- Pull request workflows
|
||||
|
||||
## Setup Instructions
|
||||
|
||||
Follow these steps to set up the CI pipeline and release process:
|
||||
|
||||
### 1. Configure Branch Protection
|
||||
|
||||
Add yourself to the whitelist in the release branch protection rule.
|
||||
|
||||

|
||||
|
||||
Don't forget to save your changes.
|
||||
|
||||

|
||||
|
||||
### 2. Create the Release Branch
|
||||
|
||||
Create a new branch named `release`.
|
||||
|
||||

|
||||
|
||||
The pipeline for release will start automatically but will fail on the first run. This is expected behavior.
|
||||
|
||||

|
||||
|
||||
### 3. Create the Initial Version Tag
|
||||
|
||||
Run the following commands to create and push the first version tag:
|
||||
|
||||
```bash
|
||||
git tag v0.1.0
|
||||
git push origin tag v0.1.0
|
||||
```
|
||||
|
||||
### 4. Configure Pull Request Settings
|
||||
|
||||
Set up your repository's pull request settings as shown:
|
||||
|
||||

|
||||
|
||||
### 5. Set Up Deploy Keys
|
||||
|
||||
1. Generate an SSH key pair (public and private)
|
||||
2. Add the public key to deploy keys named "release" with write access enabled
|
||||
|
||||

|
||||
|
||||
3. Add the private key to the runner secret as `DEPLOY_KEY`
|
||||
|
||||

|
||||
|
||||
## Release Process
|
||||
|
||||
This template uses semantic versioning through conventional commits. When changes are merged to the release branch, a new version is automatically:
|
||||
|
||||
1. Determined based on commit messages
|
||||
2. Tagged in Git
|
||||
3. Published as a release
|
||||
4. Added to the changelog
|
||||
|
||||
### Commit Message Format
|
||||
|
||||
Follow the [Conventional Commits](https://www.conventionalcommits.org/) specification:
|
||||
|
||||
- `feat: add new feature` (triggers MINOR version bump)
|
||||
- `fix: resolve bug` (triggers PATCH version bump)
|
||||
- `BREAKING CHANGE: redesign API` (triggers MAJOR version bump)
|
||||
|
||||
## Getting Started
|
||||
|
||||
After completing the setup:
|
||||
1. Remove the images directory and this README
|
||||
2. Create feature branches from `main` for your work
|
||||
3. Make changes and commit using conventional commit format
|
||||
4. Create pull requests to `main` (changes should be squashed when merged, although this is not required)
|
||||
5. When ready for a release, create a PR from `main` to `release`
|
||||
6. The PR to `release` will automatically:
|
||||
- Create a new version based on your commits
|
||||
- Generate a changelog
|
||||
- Merge changes back into `main`
|
||||
|
||||
## License
|
||||
|
||||
See the [LICENSE](LICENSE) file for details.
|
BIN
images/1.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
images/2.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
images/3.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
images/4.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
images/5.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
images/6.png
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
images/7.png
Normal file
After Width: | Height: | Size: 8.3 KiB |