48 lines
1.9 KiB
Markdown
48 lines
1.9 KiB
Markdown
# Forgejo Configuration
|
|
|
|
This directory contains configuration files for Forgejo (self-hosted Git service).
|
|
|
|
## Pull Request Template
|
|
|
|
The `pull_request_template.md` is automatically loaded when creating a new Pull Request. It provides a checklist and instructions for the PR workflow, including how to run the full test suite before merging.
|
|
|
|
## Branch Protection Setup
|
|
|
|
To enforce the full test suite before merging to `main`, configure branch protection in Forgejo:
|
|
|
|
### Steps:
|
|
|
|
1. Go to **Repository Settings** → **Branches** → **Protected Branches**
|
|
2. Add a new rule for branch: `main`
|
|
3. Configure the following settings:
|
|
- ☑️ **Enable Branch Protection**
|
|
- ☑️ **Require status checks to pass before merging**
|
|
- Add required check: `check-full`
|
|
- ☐ **Require approvals** (optional, based on team preference)
|
|
- ☑️ **Block if there are outstanding requests** (optional)
|
|
|
|
### What this does:
|
|
|
|
- The **"Merge"** button in PRs will only be enabled after `check-full` passes
|
|
- `check-full` is triggered by **promoting** a build in Drone CI (see PR template)
|
|
- This ensures all tests (including slow and UI tests) run before merging
|
|
|
|
## Workflow
|
|
|
|
1. **Create PR** → Fast test suite (`check-fast`) runs automatically
|
|
2. **Development** → Fast tests run on every push for quick feedback
|
|
3. **Ready to merge:**
|
|
- Remove `WIP:` from PR title
|
|
- Go to Drone CI and **promote** the build to `production`
|
|
- This triggers `check-full` (full test suite)
|
|
4. **After full tests pass** → Merge button becomes available
|
|
5. **Merge to main** → Container is built and published
|
|
|
|
## Secrets Required
|
|
|
|
Make sure the following secrets are configured in Drone CI:
|
|
|
|
- `DRONE_REGISTRY_USERNAME` - For container registry
|
|
- `DRONE_REGISTRY_TOKEN` - For container registry
|
|
- `RENOVATE_TOKEN` - For Renovate bot
|
|
- `GITHUB_COM_TOKEN` - For Renovate bot (GitHub dependencies)
|