2026-05-25 11:01:58 +00:00
2026-05-25 11:01:58 +00:00
2026-05-25 11:01:58 +00:00
2026-05-25 11:01:58 +00:00
2026-05-25 11:01:58 +00:00
2026-05-25 11:01:58 +00:00
2026-05-25 11:01:58 +00:00
2026-05-25 11:01:58 +00:00

coa-template

Template repo for new Exiles/coa-* addon forks. Click Use This Template on the Gitea page to start a fresh repo with the canonical release pipeline, layout convention, and CoA porting checklist pre-wired.

What you get

.
├── .gitea/workflows/release.yml   # tag-triggered release pipeline
├── tools/
│   ├── build_zip.sh               # git-archive per addon folder
│   └── init_from_upstream.sh      # one-shot upstream import helper
├── .gitattributes                 # * -text (preserve upstream EOLs)
├── .gitignore                     # standard 7-line + dist/
├── LICENSE                        # 0BSD
├── PORTING.md                     # CoA-compat bug-pattern checklist
└── README.md                      # this file

Quick start (backporting an existing addon)

# 1. Use this template to create Exiles/coa-myaddon, then:
git clone gitea@git.sub-net.at:Exiles/coa-myaddon.git
cd coa-myaddon

# 2. Pull the upstream source into MyAddon/ at the repo root.
tools/init_from_upstream.sh \
  https://github.com/Ascension-Addons/MyAddon \
  MyAddon

# 3. Make it run on CoA. Read PORTING.md — every recurring failure mode
#    we've seen across the existing 25 Exiles forks is documented there
#    with the matching fix.

# 4. Verify the build works.
bash tools/build_zip.sh
unzip -l dist/MyAddon.zip | head -5     # first entry: MyAddon/

# 5. Push your fork.
git push origin master

# 6. Tag the first release. Read MyAddon/MyAddon.toc for the upstream
#    version, then:
git tag -a 1.2.3-coa.1 -m "first Exiles release"
git push origin 1.2.3-coa.1

# The runner picks it up within seconds and publishes
# https://git.sub-net.at/Exiles/coa-myaddon/releases/tag/1.2.3-coa.1

Layout convention

Every addon source folder sits at the repo root with the same name as its .toc:

coa-myaddon/
├── MyAddon/
│   ├── MyAddon.toc
│   └── ...
└── (dev tooling at root)

Multi-addon repos (DBM, Altoholic, Atlasloot, …) place each addon as a sibling folder at the repo root. tools/build_zip.sh discovers them all and emits one zip per addon plus a combined coa-myaddon-all.zip.

Release pipeline

The workflow in .gitea/workflows/release.yml triggers on tags matching *-coa.* or v*. It checks out, runs tools/build_zip.sh, and uploads each dist/*.zip as a Gitea release attachment via plain curl — no external action dependency, no org-level secret. Per-asset upload failures are tolerated (the job still publishes whatever uploaded); oversized assets (>200 MiB) get a ::warning and skip.

Runner: gitea-runner01.corp.sub-net.at (host executor, label linux-amd64). Configured by the gitea_runner Ansible role.

Full docs: coa.exil.es/coa/dev/releases.

Maintenance

This template is updated by hand when the canonical files in Exiles/coa-decursive (the pilot) change. To re-sync the canonical release pipeline from the pilot:

cp /path/to/coa-decursive/tools/build_zip.sh tools/build_zip.sh
cp /path/to/coa-decursive/.gitea/workflows/release.yml .gitea/workflows/release.yml

The PORTING.md checklist is the lean snapshot of coa.exil.es/coa/dev/addons — when you discover a new CoA failure mode, add it to the Tome page first, then re-snapshot here.

S
Description
CoA fork of Nevcairiel/Mapster (1.3.9 baseline — last version targeting WotLK Interface 30300).
Readme 0BSD 260 KiB
1.3.9-coa.3 Latest
2026-05-29 18:23:33 +00:00
Languages
Lua 99.1%
Shell 0.9%