diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f6e9ed8..b8b2dc4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -62,9 +62,13 @@ jobs: cfg = json.loads(pathlib.Path("curseforge.json").read_text(encoding="utf-8")) print(f"CF_PROJECT_ID={cfg['projectId']}") print(f"CF_GAME_ENDPOINT={cfg['gameEndpoint']}") + print(f"CF_API_BASE_URL={cfg.get('apiBaseUrl', f\"https://{cfg['gameEndpoint']}.curseforge.com\")}") print(f"CF_RELEASE_TYPE={cfg.get('releaseType', 'release')}") print(f"CF_CHANGELOG_TYPE={cfg.get('changelogType', 'markdown')}") print("CF_GAME_VERSIONS=" + ",".join(str(v) for v in cfg["gameVersions"])) + relations = cfg.get("relations") + if relations is not None: + print("CF_RELATIONS_JSON=" + json.dumps(relations, separators=(",", ":"))) PY - name: Build CurseForge zip @@ -72,7 +76,7 @@ jobs: run: | set -euo pipefail ZIP_PATH="build/libs/bumenfeld-clock-${{ github.ref_name }}.zip" - zip -j "$ZIP_PATH" "$CF_FILE_PATH" "LICENSE" "USAGE.md" + zip -j "$ZIP_PATH" "$CF_FILE_PATH" "LICENSE" "USAGE.md" "build/resources/main/manifest.json" echo "CF_ZIP_PATH=$ZIP_PATH" >> "$GITHUB_ENV" - name: Upload to CurseForge (Upload API) @@ -91,15 +95,20 @@ jobs: "gameVersions": [int(v) for v in os.environ["CF_GAME_VERSIONS"].split(",") if v], "releaseType": os.environ.get("CF_RELEASE_TYPE", "release"), } - pathlib.Path("build/cf-metadata.json").write_text(json.dumps(metadata), encoding="utf-8") + relations_json = os.environ.get("CF_RELATIONS_JSON") + if relations_json: + metadata["relations"] = json.loads(relations_json) + pathlib.Path("build/cf-metadata.json").write_text(json.dumps(metadata, separators=(",", ":")), encoding="utf-8") PY + METADATA_JSON="$(cat build/cf-metadata.json)" + echo "Metadata JSON: ${METADATA_JSON}" HTTP_CODE="$(curl -sS -L --fail-with-body \ -o build/cf-upload-response.json \ -D build/cf-upload-headers.txt \ -w "%{http_code}" \ - -X POST "https://${CF_GAME_ENDPOINT}.curseforge.com/api/projects/${CF_PROJECT_ID}/upload-file" \ + -X POST "${CF_API_BASE_URL}/api/projects/${CF_PROJECT_ID}/upload-file" \ -H "X-Api-Token: $CF_API_TOKEN" \ - -F "metadata=@build/cf-metadata.json;type=application/json" \ + -F "metadata=