56 lines
2.1 KiB
Markdown
56 lines
2.1 KiB
Markdown
# Publishing
|
|
|
|
werkcrappit is published to the Maven registry of git.javagil.de:
|
|
|
|
```
|
|
https://git.javagil.de/api/packages/mi/maven
|
|
```
|
|
|
|
Both modules and the Gradle plugin marker go there, so a build can resolve the Gradle plugin `de.javagil.werkcrappit` and the PIT plugin `de.javagil.werkcrappit:werkcrappit-pit` from it.
|
|
|
|
## Versions
|
|
|
|
The build derives the version from the PR documents: the base version 0.26.14, raised by each PR document merged after it.
|
|
A branch without a PR document fails `checkPrDocument`, since its merge would keep the version.
|
|
`./gradlew changelog` writes the release notes of the PR documents and the entries of `CHANGELOG.md` up to 0.26.14
|
|
into `build/changelog/CHANGELOG.md`.
|
|
A version is uploaded once and never replaced: the registry refuses a second upload.
|
|
`tools/publish` therefore asks the registry first and does nothing when the version is there already, so a re-run of the same `main` build stays green.
|
|
|
|
## Who publishes
|
|
|
|
The Werkator build `publish` runs `tools/publish` after every green build of `main`.
|
|
It is split like Werkator's own deployment:
|
|
|
|
- the repository's half in the committed `.werkator.yml`: the command;
|
|
- the host's half in `.git/werkator/.werkator.yml` of the clone on mih09: the trigger, the status context and the token.
|
|
|
|
A branch can neither add the trigger nor read the token, since host-authored triggers are pinned and the token exists only in the host's file.
|
|
|
|
### Host configuration (mih09)
|
|
|
|
Create a Gitea access token with the scope `package: Read and Write` for the user that owns the packages.
|
|
Add this to `/home/pacs/mih09/users/werkator/werkcrappit/.git/werkator/.werkator.yml` (mode 600):
|
|
|
|
```yaml
|
|
builds:
|
|
publish:
|
|
trigger:
|
|
afterSuccessOf: default
|
|
branches: ["main"]
|
|
statusContext: werkator/publish
|
|
werkdock:
|
|
env:
|
|
GITEA_PACKAGES_TOKEN: "<token>"
|
|
```
|
|
|
|
The sandbox shares the host's network, so the build reaches the registry.
|
|
|
|
## Publishing by hand
|
|
|
|
```bash
|
|
GITEA_PACKAGES_TOKEN=<token> tools/publish
|
|
```
|
|
|
|
Without a token, `./gradlew publishToMavenLocal` puts everything into `~/.m2` for a local trial.
|