erpnext/docs/JENKINS.md

85 lines
2.6 KiB
Markdown

# Jenkins setup (Forgejo)
Repo: `https://git.aexoradao.com/epistemophiliac/erpnext.git`
Branch: `main`
Pipeline file: `Jenkinsfile` (repo root)
## Option A — Simple Pipeline (fastest)
If Multibranch shows an empty folder, use this instead.
1. **New Item****Pipeline** → name `erpnext`
2. **Pipeline** → Definition: **Pipeline script from SCM**
3. SCM: **Git**
- Repository URL: `https://git.aexoradao.com/epistemophiliac/erpnext.git`
- Credentials: Forgejo user + access token
- Branch: `*/main`
4. Script Path: `Jenkinsfile`
5. **Save****Build Now**
## Option B — Multibranch Pipeline
Indexing succeeds but the folder stays empty when **Discover branches** is missing.
1. **New Item****Multibranch Pipeline** → name `erpnext`
2. **Branch Sources****Git**
- URL + credentials (same as above)
3. **Behaviours****Add****Discover branches**
- Strategy: **All branches** (or include `main` via wildcard filter)
4. **Build Configuration**
- Mode: **by Jenkinsfile**
- Script Path: `Jenkinsfile`
5. **Save****Scan Repository Now**
You should see a `main` branch under the folder. Click it → **Build Now**.
### Optional: Forgejo webhook
Install the **Gitea** plugin in Jenkins, then use **Gitea** as the branch source (Forgejo-compatible) for automatic scans on push.
## Credentials
**Manage Jenkins → Credentials → Add**
- Kind: Username with password
- Username: `epistemophiliac`
- Password: Forgejo personal access token (repo read scope)
## What the pipeline does
- `scripts/ci/ci-readiness.sh`
- `scripts/ci/validate-docker-compose.sh`
- `docker compose config` (Coolify-safe compose)
- `docker pull frappe/erpnext:<version>`
- Archives `dist/docker-compose.coolify.yml`
This validates the repo; **Coolify deploy is separate**.
## Troubleshooting
### `fatal: not in a git directory` (branch indexing)
Usually a **corrupt Jenkins git cache** after changing container user. In the **jenkins** container terminal (Coolify):
```bash
rm -rf /var/jenkins_home/caches/git-*
chown -R jenkins:jenkins /var/jenkins_home
```
Then **Scan Repository Now** on the multibranch job.
### `permission denied` on `/var/run/docker.sock`
Jenkins must be in the host **docker** group. On the Coolify host:
```bash
stat -c '%g' /var/run/docker.sock
```
Set that number as `DOCKER_GID` on the **jenkins** Coolify service (default `999`), redeploy Jenkins, rebuild.
Do **not** run Jenkins as `user: 0:0` — it breaks `jenkins_home` ownership and git caches.
### Always use **Build Now** on `main`, not **Rebuild** on old builds
Old rebuilds replay old commits with old `Jenkinsfile` content.