diff --git a/ansible/roles/forgejo/tasks/main.yml b/ansible/roles/forgejo/tasks/main.yml index 1877731..7cafb12 100644 --- a/ansible/roles/forgejo/tasks/main.yml +++ b/ansible/roles/forgejo/tasks/main.yml @@ -9,13 +9,10 @@ # 2. Add forge mirror as secondary remote: # ssh indri 'cd ~/code/3rd/forgejo && git remote add forge https://forge.eblu.me/mirrors/forgejo.git' # -# 3. Set up Go and Node via mise: -# ssh indri 'cd ~/code/3rd/forgejo && mise use go@1.25 node@24' +# 3. Build (mise.toml handles Go/Node versions and build tags): +# ssh indri 'cd ~/code/3rd/forgejo && mise run build' # -# 4. Build: -# ssh indri 'cd ~/code/3rd/forgejo && TAGS="bindata timetzdata sqlite sqlite_unlock_notify" mise x -- make build && mise x -- make forgejo' -# -# 5. Run ansible to deploy config and LaunchAgent +# 4. Run ansible to deploy config and LaunchAgent # # Secrets (lfs_jwt_secret, internal_token, oauth2_jwt_secret) are fetched # from 1Password in the playbook pre_tasks. @@ -30,7 +27,7 @@ msg: | Forgejo binary not found at {{ forgejo_binary }}. Please build from source first: - ssh indri 'cd ~/code/3rd/forgejo && TAGS="bindata timetzdata sqlite sqlite_unlock_notify" mise x -- make build && mise x -- make forgejo' + ssh indri 'cd ~/code/3rd/forgejo && mise run build' when: not forgejo_binary_stat.stat.exists - name: Ensure forgejo config directory exists diff --git a/docs/reference/services/forgejo.md b/docs/reference/services/forgejo.md index dcd0878..fbbc506 100644 --- a/docs/reference/services/forgejo.md +++ b/docs/reference/services/forgejo.md @@ -45,11 +45,14 @@ ssh indri 'cd ~/code/3rd/forgejo && git remote add forge https://forge.eblu.me/m ```fish ssh indri 'cd ~/code/3rd/forgejo && git fetch --tags && git checkout v14.0.3' -ssh indri 'cd ~/code/3rd/forgejo && mise use go@1.25 node@24' -ssh indri 'cd ~/code/3rd/forgejo && TAGS="bindata timetzdata sqlite sqlite_unlock_notify" mise x -- make build && mise x -- make forgejo' +ssh indri 'cd ~/code/3rd/forgejo && mise run build' ``` -Build tags: `bindata` (embed assets), `timetzdata` (embed timezone data), `sqlite sqlite_unlock_notify` (SQLite support). The `make build` target produces `./gitea`; `make forgejo` creates a `./forgejo` hardlink. +The `build` mise task (defined in the repo's `mise.toml`) runs `make build` with the correct tags and creates the `./forgejo` hardlink. It uses `go@1.25.8` and `node@24` as configured by `mise use`. + +**WARNING:** Do NOT use `make forgejo` directly — it rebuilds with empty TAGS, stripping SQLite support. Always use `mise run build` or pass TAGS explicitly to `make build` and `ln -f gitea forgejo` afterwards. + +Build tags: `bindata` (embed assets), `timetzdata` (embed timezone data), `sqlite sqlite_unlock_notify` (SQLite support). After building, run `mise run provision-indri -- --tags forgejo` to deploy the config and restart the service.