initialise the gitea workflows.
This commit is contained in:
@@ -0,0 +1,182 @@
|
||||
# Minecraft Modpacks
|
||||
|
||||
Packwiz-managed Minecraft modpacks used by the AGS Minecraft infrastructure.
|
||||
|
||||
The repository is the source of truth for both client and server modpack configuration. Packs are deployed through Gitea Actions and served as static Packwiz repositories for Pterodactyl.
|
||||
|
||||
## Packs
|
||||
|
||||
### Forever World
|
||||
|
||||
Long-lived NeoForge survival world with a deliberately conservative mod selection.
|
||||
|
||||
- Minecraft: 1.21.1
|
||||
- NeoForge: 21.1.248
|
||||
- Packwiz: managed
|
||||
- Production: release-based
|
||||
|
||||
Development:
|
||||
|
||||
```text
|
||||
https://mc.ahmza.com/forever/dev/pack.toml
|
||||
```
|
||||
|
||||
Stable:
|
||||
|
||||
```text
|
||||
https://mc.ahmza.com/forever/stable/pack.toml
|
||||
```
|
||||
|
||||
### Playground
|
||||
|
||||
Disposable environment for testing mods, updates and configuration changes before considering them for Forever World.
|
||||
|
||||
Development:
|
||||
|
||||
```text
|
||||
https://mc.ahmza.com/playground/dev/pack.toml
|
||||
```
|
||||
|
||||
## Repository Structure
|
||||
|
||||
```text
|
||||
mc-modpacks/
|
||||
├── .gitea/
|
||||
│ └── workflows/
|
||||
├── forever/
|
||||
│ ├── pack.toml
|
||||
│ ├── index.toml
|
||||
│ ├── mods/
|
||||
│ ├── config/
|
||||
│ ├── defaultconfigs/
|
||||
│ └── README.md
|
||||
├── playground/
|
||||
│ ├── pack.toml
|
||||
│ ├── index.toml
|
||||
│ ├── mods/
|
||||
│ ├── config/
|
||||
│ ├── defaultconfigs/
|
||||
│ └── README.md
|
||||
└── deploy/
|
||||
└── kubernetes/
|
||||
```
|
||||
|
||||
## Development Model
|
||||
|
||||
`main` represents the current development state.
|
||||
|
||||
Normal changes are committed directly to `main`:
|
||||
|
||||
```bash
|
||||
git switch main
|
||||
|
||||
cd forever
|
||||
packwiz update <mod>
|
||||
packwiz refresh
|
||||
|
||||
git add .
|
||||
git commit -m "Update <mod>"
|
||||
git push
|
||||
```
|
||||
|
||||
A push to `main` publishes the pack to its `dev` endpoint.
|
||||
|
||||
Production is **not** updated by normal commits.
|
||||
|
||||
### Branches
|
||||
|
||||
Branches are reserved for substantial or experimental work, for example:
|
||||
|
||||
```text
|
||||
mc-26-migration
|
||||
create-major-upgrade
|
||||
worldgen-experiment
|
||||
test-new-content-mod
|
||||
```
|
||||
|
||||
Small mod updates and configuration changes do not require branches.
|
||||
|
||||
## Releases
|
||||
|
||||
Test the development pack before creating a release.
|
||||
|
||||
Forever World releases use annotated tags:
|
||||
|
||||
```bash
|
||||
git tag -a forever-v1.0.1 -m "Forever World v1.0.1"
|
||||
git push origin forever-v1.0.1
|
||||
```
|
||||
|
||||
A release publishes an immutable copy to:
|
||||
|
||||
```text
|
||||
/forever/releases/v1.0.1/
|
||||
```
|
||||
|
||||
and promotes the same build to:
|
||||
|
||||
```text
|
||||
/forever/stable/
|
||||
```
|
||||
|
||||
Production Pterodactyl servers always consume the stable endpoint rather than individual release URLs.
|
||||
|
||||
### Versioning
|
||||
|
||||
Approximately follow semantic versioning:
|
||||
|
||||
| Version | Use |
|
||||
|---|---|
|
||||
| `v1.0.1` | Bug fixes, configs and routine mod updates |
|
||||
| `v1.1.0` | New functionality or compatible mods |
|
||||
| `v2.0.0` | Major Minecraft/modpack/world dependency changes |
|
||||
|
||||
Release tags are immutable. Never move or recreate an existing release tag.
|
||||
|
||||
## Deployment Flow
|
||||
|
||||
```text
|
||||
Gitea
|
||||
│
|
||||
push to main
|
||||
│
|
||||
▼
|
||||
Gitea Actions
|
||||
│
|
||||
▼
|
||||
/forever/dev/pack.toml
|
||||
│
|
||||
▼
|
||||
Staging Server
|
||||
│
|
||||
Test
|
||||
│
|
||||
forever-v1.x.x tag
|
||||
│
|
||||
▼
|
||||
Gitea Actions
|
||||
┌────┴────┐
|
||||
▼ ▼
|
||||
releases/ stable/
|
||||
│
|
||||
▼
|
||||
Production Server
|
||||
```
|
||||
|
||||
Packwiz is responsible for modpack contents and side filtering.
|
||||
|
||||
Pterodactyl is responsible for Java, server process management and resources.
|
||||
|
||||
Kubernetes/SWS provides static hosting for the published Packwiz repositories.
|
||||
|
||||
## Rollback
|
||||
|
||||
Release directories are immutable.
|
||||
|
||||
If a release causes problems, production can be pointed temporarily at an earlier release:
|
||||
|
||||
```text
|
||||
https://mc.ahmza.com/forever/releases/v1.0.1/pack.toml
|
||||
```
|
||||
|
||||
Do not rewrite an existing release or tag. Fix the issue on `main` and publish a new release.
|
||||
@@ -0,0 +1,4 @@
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
@@ -0,0 +1,4 @@
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "forever-v*"
|
||||
Reference in New Issue
Block a user