Rename the Gitea repo references to ProLibertateGames
Build and Release APK / Build APK and publish release (push) Canceled after 0s
Build and Release APK / Build APK and publish release (push) Canceled after 0s
The repo was renamed from PilgrimsOfKatan to ProLibertateGames on the Gitea instance. Update every reference so nothing points at the old name: - OTA updater: the repo constant and the User-Agent - publish-release.sh: the default repo, the asset name, the release title - CI/release workflows: the artifact names and the staged APK name - settings.gradle.kts: the Gradle project name - Protocol.kt / LanTransport.kt: the mDNS service label and the Wi-Fi lock tag - docs (README, CLAUDE.md, docs/CI.md) and the update-policy test fixtures The installed applicationId is left unchanged in this commit. Co-Authored-By: Paperclip <[email protected]>
This commit is contained in:
co-authored by
Paperclip
parent
5c797c8807
commit
b58b4251dc
@@ -69,7 +69,7 @@ jobs:
|
|||||||
- name: Upload debug APK
|
- name: Upload debug APK
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: PilgrimsOfKatan-debug-apk
|
name: ProLibertateGames-debug-apk
|
||||||
path: app/build/outputs/apk/debug/app-debug.apk
|
path: app/build/outputs/apk/debug/app-debug.apk
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
retention-days: 14
|
retention-days: 14
|
||||||
@@ -79,7 +79,7 @@ jobs:
|
|||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: PilgrimsOfKatan-reports
|
name: ProLibertateGames-reports
|
||||||
path: |
|
path: |
|
||||||
app/build/reports/
|
app/build/reports/
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
@@ -109,7 +109,7 @@ jobs:
|
|||||||
stamp="$(( ${{ github.run_number }} + offset ))"
|
stamp="$(( ${{ github.run_number }} + offset ))"
|
||||||
version="v${series}.${stamp}-dev"
|
version="v${series}.${stamp}-dev"
|
||||||
src="app/build/outputs/apk/debug/app-debug.apk"
|
src="app/build/outputs/apk/debug/app-debug.apk"
|
||||||
dest="PilgrimsOfKatan-${version}.apk"
|
dest="ProLibertateGames-${version}.apk"
|
||||||
cp "$src" "$dest"
|
cp "$src" "$dest"
|
||||||
echo "version=$version" >> "$GITHUB_OUTPUT"
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||||
echo "apk=$dest" >> "$GITHUB_OUTPUT"
|
echo "apk=$dest" >> "$GITHUB_OUTPUT"
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ jobs:
|
|||||||
stamp="$(( ${{ github.run_number }} + offset ))"
|
stamp="$(( ${{ github.run_number }} + offset ))"
|
||||||
version="v${series}.${stamp}"
|
version="v${series}.${stamp}"
|
||||||
src="app/build/outputs/apk/debug/app-debug.apk"
|
src="app/build/outputs/apk/debug/app-debug.apk"
|
||||||
dest="PilgrimsOfKatan-${version}.apk"
|
dest="ProLibertateGames-${version}.apk"
|
||||||
cp "$src" "$dest"
|
cp "$src" "$dest"
|
||||||
echo "version=$version" >> "$GITHUB_OUTPUT"
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||||
echo "apk=$dest" >> "$GITHUB_OUTPUT"
|
echo "apk=$dest" >> "$GITHUB_OUTPUT"
|
||||||
@@ -72,7 +72,7 @@ jobs:
|
|||||||
- name: Upload APK as workflow artifact
|
- name: Upload APK as workflow artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: PilgrimsOfKatan-apk
|
name: ProLibertateGames-apk
|
||||||
path: ${{ steps.stage.outputs.apk }}
|
path: ${{ steps.stage.outputs.apk }}
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ ProLibertateGames — Wallacenet's build of an Android collection of card and
|
|||||||
board games, playable against AI or over Wi-Fi (LAN). Upstream:
|
board games, playable against AI or over Wi-Fi (LAN). Upstream:
|
||||||
[adrianoftyriel/ProLibertateGames](https://github.com/adrianoftyriel/ProLibertateGames)
|
[adrianoftyriel/ProLibertateGames](https://github.com/adrianoftyriel/ProLibertateGames)
|
||||||
(GPL-3.0, kept as the `upstream` remote). Canonical repo:
|
(GPL-3.0, kept as the `upstream` remote). Canonical repo:
|
||||||
<https://git.wallacenet.ca/devadmin/PilgrimsOfKatan>.
|
<https://git.wallacenet.ca/devadmin/ProLibertateGames>.
|
||||||
|
|
||||||
## Ground rules
|
## Ground rules
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ One flag — `isDevBuild` in `app/build.gradle.kts` — drives applicationId,
|
|||||||
launcher name and brand colour together. Never set them individually.
|
launcher name and brand colour together. Never set them individually.
|
||||||
|
|
||||||
In-app OTA points at this repo's own Gitea releases
|
In-app OTA points at this repo's own Gitea releases
|
||||||
(`/api/v1/repos/devadmin/PilgrimsOfKatan/releases…`) and is **on**:
|
(`/api/v1/repos/devadmin/ProLibertateGames/releases…`) and is **on**:
|
||||||
`BuildConfig.OTA_ENABLED` is `true`. The channel is a decision already made and
|
`BuildConfig.OTA_ENABLED` is `true`. The channel is a decision already made and
|
||||||
recorded — `docs/CI.md` documents the endpoints, the build-number scheme, and
|
recorded — `docs/CI.md` documents the endpoints, the build-number scheme, and
|
||||||
what publishing requires. Setting the flag to `false` is the kill switch.
|
what publishing requires. Setting the flag to `false` is the kill switch.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ or against other people over Wi-Fi (LAN).
|
|||||||
|
|
||||||
Wallacenet's build of [ProLibertateGames](https://github.com/adrianoftyriel/ProLibertateGames)
|
Wallacenet's build of [ProLibertateGames](https://github.com/adrianoftyriel/ProLibertateGames)
|
||||||
by adrianoftyriel (GNU GPL v3 — see [LICENSE](LICENSE)), hosted at
|
by adrianoftyriel (GNU GPL v3 — see [LICENSE](LICENSE)), hosted at
|
||||||
<https://git.wallacenet.ca/devadmin/PilgrimsOfKatan>. Game rules documentation
|
<https://git.wallacenet.ca/devadmin/ProLibertateGames>. Game rules documentation
|
||||||
lives under [docs/](docs/README.md); build, CI and release decisions live in
|
lives under [docs/](docs/README.md); build, CI and release decisions live in
|
||||||
[docs/CI.md](docs/CI.md). Katan itself arrives in later work — it is listed under
|
[docs/CI.md](docs/CI.md). Katan itself arrives in later work — it is listed under
|
||||||
Board Games as *Coming soon* — and this app ships the reference catalogue
|
Board Games as *Coming soon* — and this app ships the reference catalogue
|
||||||
|
|||||||
@@ -308,6 +308,6 @@ class LanTransport(private val context: Context) : Transport {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const val CONNECT_TIMEOUT_MS = 8_000
|
const val CONNECT_TIMEOUT_MS = 8_000
|
||||||
const val WIFI_LOCK_TAG = "PilgrimsOfKatan:lan"
|
const val WIFI_LOCK_TAG = "ProLibertateGames:lan"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ const val PURPOSE_SCOREKEEPER = "scorekeeper"
|
|||||||
|
|
||||||
/** Service type and name advertised over mDNS. */
|
/** Service type and name advertised over mDNS. */
|
||||||
const val SERVICE_TYPE = "_plgames._tcp"
|
const val SERVICE_TYPE = "_plgames._tcp"
|
||||||
const val SERVICE_NAME = "PilgrimsOfKatan"
|
const val SERVICE_NAME = "ProLibertateGames"
|
||||||
|
|
||||||
val protocolJson: Json = Json {
|
val protocolJson: Json = Json {
|
||||||
ignoreUnknownKeys = true
|
ignoreUnknownKeys = true
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ class Updater(private val activity: Activity) {
|
|||||||
(URL(url).openConnection() as HttpURLConnection).apply {
|
(URL(url).openConnection() as HttpURLConnection).apply {
|
||||||
requestMethod = "GET"
|
requestMethod = "GET"
|
||||||
setRequestProperty("Accept", "application/json")
|
setRequestProperty("Accept", "application/json")
|
||||||
setRequestProperty("User-Agent", "PilgrimsOfKatan-Updater")
|
setRequestProperty("User-Agent", "ProLibertateGames-Updater")
|
||||||
connectTimeout = 15_000
|
connectTimeout = 15_000
|
||||||
readTimeout = 15_000
|
readTimeout = 15_000
|
||||||
}
|
}
|
||||||
@@ -206,7 +206,7 @@ class Updater(private val activity: Activity) {
|
|||||||
const val SERVER = "https://git.wallacenet.ca"
|
const val SERVER = "https://git.wallacenet.ca"
|
||||||
const val SERVER_HOST = "git.wallacenet.ca"
|
const val SERVER_HOST = "git.wallacenet.ca"
|
||||||
const val OWNER = "devadmin"
|
const val OWNER = "devadmin"
|
||||||
const val REPO = "PilgrimsOfKatan"
|
const val REPO = "ProLibertateGames"
|
||||||
|
|
||||||
/** Release routes, Gitea's `/api/v1` spelling of GitHub's API. */
|
/** Release routes, Gitea's `/api/v1` spelling of GitHub's API. */
|
||||||
const val API = "$SERVER/api/v1/repos/$OWNER/$REPO"
|
const val API = "$SERVER/api/v1/repos/$OWNER/$REPO"
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class UpdatePolicyTest {
|
|||||||
tag = tag,
|
tag = tag,
|
||||||
versionCode = versionCode,
|
versionCode = versionCode,
|
||||||
apkUrl = "https://example.invalid/$tag.apk",
|
apkUrl = "https://example.invalid/$tag.apk",
|
||||||
apkName = "PilgrimsOfKatan-$tag.apk",
|
apkName = "ProLibertateGames-$tag.apk",
|
||||||
channel = channel,
|
channel = channel,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -60,16 +60,16 @@ class UpdatePolicyTest {
|
|||||||
// The instance reports its canonical host; the app was told to trust
|
// The instance reports its canonical host; the app was told to trust
|
||||||
// another. Same bytes, one host, whatever the server names itself.
|
// another. Same bytes, one host, whatever the server names itself.
|
||||||
assertEquals(
|
assertEquals(
|
||||||
"https://git.wallacenet.ca/devadmin/PilgrimsOfKatan/releases/download/" +
|
"https://git.wallacenet.ca/devadmin/ProLibertateGames/releases/download/" +
|
||||||
"v1.4.1001-dev/PilgrimsOfKatan-v1.4.1001-dev.apk",
|
"v1.4.1001-dev/ProLibertateGames-v1.4.1001-dev.apk",
|
||||||
onReportedHost(
|
onReportedHost(
|
||||||
"https://git.saskvalleytech.com/devadmin/PilgrimsOfKatan/releases/download/" +
|
"https://git.saskvalleytech.com/devadmin/ProLibertateGames/releases/download/" +
|
||||||
"v1.4.1001-dev/PilgrimsOfKatan-v1.4.1001-dev.apk",
|
"v1.4.1001-dev/ProLibertateGames-v1.4.1001-dev.apk",
|
||||||
"git.wallacenet.ca",
|
"git.wallacenet.ca",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
// A URL that already says the right host is left exactly as it is.
|
// A URL that already says the right host is left exactly as it is.
|
||||||
val already = "https://git.wallacenet.ca/devadmin/PilgrimsOfKatan/releases/download/v1.4.1/a.apk"
|
val already = "https://git.wallacenet.ca/devadmin/ProLibertateGames/releases/download/v1.4.1/a.apk"
|
||||||
assertEquals(already, onReportedHost(already, "git.wallacenet.ca"))
|
assertEquals(already, onReportedHost(already, "git.wallacenet.ca"))
|
||||||
// Anything unparseable survives untouched rather than being dropped.
|
// Anything unparseable survives untouched rather than being dropped.
|
||||||
assertEquals("not a url", onReportedHost("not a url", "git.wallacenet.ca"))
|
assertEquals("not a url", onReportedHost("not a url", "git.wallacenet.ca"))
|
||||||
|
|||||||
+5
-5
@@ -1,11 +1,11 @@
|
|||||||
# CI, releases, and OTA — decisions and how to build
|
# CI, releases, and OTA — decisions and how to build
|
||||||
|
|
||||||
Status as of the Pilgrims of Katan bootstrap (WALA-118).
|
Status as of the ProLibertateGames bootstrap (WALA-118).
|
||||||
|
|
||||||
## Decisions
|
## Decisions
|
||||||
|
|
||||||
1. **The release channel is this instance's own releases.** The app ships from
|
1. **The release channel is this instance's own releases.** The app ships from
|
||||||
<https://git.wallacenet.ca/devadmin/PilgrimsOfKatan>, and the in-app updater
|
<https://git.wallacenet.ca/devadmin/ProLibertateGames>, and the in-app updater
|
||||||
reads that repo's releases over Gitea's REST API. GitHub is not a channel for
|
reads that repo's releases over Gitea's REST API. GitHub is not a channel for
|
||||||
this project; the only GitHub URLs left are the `upstream` remote and the
|
this project; the only GitHub URLs left are the `upstream` remote and the
|
||||||
attribution link in the README.
|
attribution link in the README.
|
||||||
@@ -113,8 +113,8 @@ so a retry is safe.
|
|||||||
|
|
||||||
| Channel | Endpoint |
|
| Channel | Endpoint |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| production | `GET /api/v1/repos/devadmin/PilgrimsOfKatan/releases/latest` |
|
| production | `GET /api/v1/repos/devadmin/ProLibertateGames/releases/latest` |
|
||||||
| dev | `GET /api/v1/repos/devadmin/PilgrimsOfKatan/releases?limit=30` |
|
| dev | `GET /api/v1/repos/devadmin/ProLibertateGames/releases?limit=30` |
|
||||||
|
|
||||||
- `/releases/latest` is documented by Gitea as *the most recent non-prerelease,
|
- `/releases/latest` is documented by Gitea as *the most recent non-prerelease,
|
||||||
non-draft release* — the same rule GitHub implements, so the production
|
non-draft release* — the same rule GitHub implements, so the production
|
||||||
@@ -126,7 +126,7 @@ so a retry is safe.
|
|||||||
`prerelease`, `draft`, and assets carrying `browser_download_url`. Gitea says
|
`prerelease`, `draft`, and assets carrying `browser_download_url`. Gitea says
|
||||||
`limit` where GitHub says `per_page`.
|
`limit` where GitHub says `per_page`.
|
||||||
- Each asset must be named so it contains its tag —
|
- Each asset must be named so it contains its tag —
|
||||||
`PilgrimsOfKatan-v1.4.1001.apk` for tag `v1.4.1001` — because the updater
|
`ProLibertateGames-v1.4.1001.apk` for tag `v1.4.1001` — because the updater
|
||||||
picks the versioned APK out of the release's assets by that rule.
|
picks the versioned APK out of the release's assets by that rule.
|
||||||
|
|
||||||
`BuildConfig.OTA_ENABLED` is a kill switch, not a channel decision: it is
|
`BuildConfig.OTA_ENABLED` is a kill switch, not a channel decision: it is
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
# Environment:
|
# Environment:
|
||||||
# GITEA_TOKEN required — a token that may create releases on the repo.
|
# GITEA_TOKEN required — a token that may create releases on the repo.
|
||||||
# GITEA_API API base, default https://git.wallacenet.ca/api/v1
|
# GITEA_API API base, default https://git.wallacenet.ca/api/v1
|
||||||
# GITEA_REPO owner/name, default devadmin/PilgrimsOfKatan
|
# GITEA_REPO owner/name, default devadmin/ProLibertateGames
|
||||||
#
|
#
|
||||||
# The four arguments can also arrive as RELEASE_TAG, RELEASE_APK,
|
# The four arguments can also arrive as RELEASE_TAG, RELEASE_APK,
|
||||||
# RELEASE_KIND and RELEASE_TARGET, which is how the workflows pass them.
|
# RELEASE_KIND and RELEASE_TARGET, which is how the workflows pass them.
|
||||||
@@ -34,7 +34,7 @@ esac
|
|||||||
[ -f "$apk" ] || { echo "publish-release: no such APK: ${apk:-<unset>}" >&2; exit 2; }
|
[ -f "$apk" ] || { echo "publish-release: no such APK: ${apk:-<unset>}" >&2; exit 2; }
|
||||||
[ -n "${GITEA_TOKEN:-}" ] || { echo "publish-release: GITEA_TOKEN is not set" >&2; exit 2; }
|
[ -n "${GITEA_TOKEN:-}" ] || { echo "publish-release: GITEA_TOKEN is not set" >&2; exit 2; }
|
||||||
|
|
||||||
api="${GITEA_API:-${GITHUB_API_URL:-https://git.wallacenet.ca/api/v1}}/repos/${GITEA_REPO:-${GITHUB_REPOSITORY:-devadmin/PilgrimsOfKatan}}"
|
api="${GITEA_API:-${GITHUB_API_URL:-https://git.wallacenet.ca/api/v1}}/repos/${GITEA_REPO:-${GITHUB_REPOSITORY:-devadmin/ProLibertateGames}}"
|
||||||
|
|
||||||
tmp="$(mktemp -d)"
|
tmp="$(mktemp -d)"
|
||||||
trap 'rm -rf "$tmp"' EXIT INT TERM
|
trap 'rm -rf "$tmp"' EXIT INT TERM
|
||||||
@@ -43,7 +43,7 @@ trap 'rm -rf "$tmp"' EXIT INT TERM
|
|||||||
# updater picks the versioned APK out of a release's assets by finding the one
|
# updater picks the versioned APK out of a release's assets by finding the one
|
||||||
# whose name contains the tag, so an asset called app-debug.apk would only be
|
# whose name contains the tag, so an asset called app-debug.apk would only be
|
||||||
# found by the fallback rule.
|
# found by the fallback rule.
|
||||||
apk_name="PilgrimsOfKatan-${tag}.apk"
|
apk_name="ProLibertateGames-${tag}.apk"
|
||||||
|
|
||||||
# The tag and the file name are both derived from gradle.properties and a run
|
# The tag and the file name are both derived from gradle.properties and a run
|
||||||
# number, so neither can carry a quote or a backslash into this JSON.
|
# number, so neither can carry a quote or a backslash into this JSON.
|
||||||
@@ -56,7 +56,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
cat > "$tmp/release.json" <<JSON
|
cat > "$tmp/release.json" <<JSON
|
||||||
{"tag_name":"${tag}","target_commitish":"${target}","name":"Pilgrims of Katan ${tag}","body":"${note}","prerelease":${prerelease},"draft":false}
|
{"tag_name":"${tag}","target_commitish":"${target}","name":"Pro Libertate Games ${tag}","body":"${note}","prerelease":${prerelease},"draft":false}
|
||||||
JSON
|
JSON
|
||||||
|
|
||||||
code="$(curl -sS -o "$tmp/create.json" -w '%{http_code}' -X POST \
|
code="$(curl -sS -o "$tmp/create.json" -w '%{http_code}' -X POST \
|
||||||
|
|||||||
+1
-1
@@ -14,5 +14,5 @@ dependencyResolutionManagement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rootProject.name = "PilgrimsOfKatan"
|
rootProject.name = "ProLibertateGames"
|
||||||
include(":app")
|
include(":app")
|
||||||
|
|||||||
Reference in New Issue
Block a user