Private
Public Access
CI CD Pipeline hinzugefügt
+121
@@ -0,0 +1,121 @@
|
||||
# CI/CD Pipeline
|
||||
|
||||
The project uses Drone CI to build and publish images to the Gitea container registry.
|
||||
|
||||
---
|
||||
|
||||
## Main Pipeline Responsibilities
|
||||
|
||||
The pipeline builds:
|
||||
|
||||
```text
|
||||
romexis-payload
|
||||
romexis-firebird-payload
|
||||
romexis-base-jre:11-amd64
|
||||
romexis-base-jre:11-arm64
|
||||
romexis-server:<version>-amd64
|
||||
romexis-server:<version>-arm64
|
||||
romexis-server:<version> multiarch manifest
|
||||
migration-service
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Payload Build Logic
|
||||
|
||||
The Windows payload build checks version definitions and copy-map changes.
|
||||
|
||||
Desired behavior:
|
||||
|
||||
| Change | Behavior |
|
||||
|---|---|
|
||||
| New version added | build only new version |
|
||||
| Existing URL changed | force rebuild affected version |
|
||||
| Copy map changed | rebuild all payload versions |
|
||||
| Extraction script changed | rebuild all payload versions |
|
||||
|
||||
---
|
||||
|
||||
## Firebird Payload Build
|
||||
|
||||
The Firebird payload is built after the Windows Romexis payload step.
|
||||
|
||||
It uses:
|
||||
|
||||
```text
|
||||
romexis-firebird-payload/romexis-firebird-versions.env
|
||||
```
|
||||
|
||||
The build pushes:
|
||||
|
||||
```text
|
||||
romexis-firebird-payload:latest
|
||||
```
|
||||
|
||||
The server image consumes the shared Firebird payload image.
|
||||
|
||||
---
|
||||
|
||||
## Server Build
|
||||
|
||||
The server build pulls:
|
||||
|
||||
```text
|
||||
ROMEXIS_PAYLOAD_IMAGE
|
||||
ROMEXIS_FIREBIRD_PAYLOAD_IMAGE
|
||||
ROMEXIS_BASE_IMAGE
|
||||
```
|
||||
|
||||
Then builds the final runtime image for each architecture.
|
||||
|
||||
---
|
||||
|
||||
## Push vs Load
|
||||
|
||||
In CI, use `--push` for buildx output when publishing images.
|
||||
|
||||
This avoids unnecessary local image loading and can reduce worker time.
|
||||
|
||||
---
|
||||
|
||||
## Common CI Troubleshooting
|
||||
|
||||
### Build is too fast after cache cleanup
|
||||
|
||||
This may mean the pipeline skipped the build because the registry image already exists.
|
||||
|
||||
Look for log lines like:
|
||||
|
||||
```text
|
||||
already exists
|
||||
Skipping rebuild
|
||||
docker manifest inspect
|
||||
```
|
||||
|
||||
Force rebuild by changing the pipeline condition or setting the force rebuild variable.
|
||||
|
||||
### latest tag not found
|
||||
|
||||
If the server Dockerfile references:
|
||||
|
||||
```text
|
||||
romexis-firebird-payload:latest
|
||||
```
|
||||
|
||||
then the Firebird payload pipeline must push `latest`.
|
||||
|
||||
Build command should include:
|
||||
|
||||
```bash
|
||||
-t "$FIREBIRD_PAYLOAD_IMAGE:latest"
|
||||
```
|
||||
|
||||
### Payload missing from final image
|
||||
|
||||
Check the final image:
|
||||
|
||||
```bash
|
||||
docker run --rm --entrypoint find \
|
||||
gitea.buchhorster.de/patrick/romexis-server:<tag> \
|
||||
/opt -maxdepth 3 -type f
|
||||
```
|
||||
Reference in New Issue
Block a user