2
0
mirror of https://github.com/spritsail/plex-media-server.git synced 2025-05-15 18:47:55 +00:00

Publish to Docker Hub, Github Container Registry & Self-Hosted Registry

This commit is contained in:
Adam Dodman 2025-05-05 16:07:47 +01:00
parent e5fb66fb2d
commit 04c4bf7d5e
Signed by: AdamAnt
GPG Key ID: 7826B108895B86AA

View File

@ -12,7 +12,7 @@ def main(ctx):
depends_on.append(key) depends_on.append(key)
if ctx.build.branch in publish_branches: if ctx.build.branch in publish_branches:
builds.append(publish(depends_on)) builds.extend(publish(depends_on))
builds.append(update_readme()) builds.append(update_readme())
return builds return builds
@ -29,7 +29,7 @@ def step(arch, key):
{ {
"name": "build", "name": "build",
"pull": "always", "pull": "always",
"image": "spritsail/docker-build", "image": "registry.spritsail.io/spritsail/docker-build",
"settings": { "settings": {
"make": "true", "make": "true",
}, },
@ -37,7 +37,7 @@ def step(arch, key):
{ {
"name": "test-bin", "name": "test-bin",
"pull": "always", "pull": "always",
"image": "spritsail/docker-test", "image": "registry.spritsail.io/spritsail/docker-test",
"settings": { "settings": {
"run": "busybox && curl --version && xmlstarlet --version" "run": "busybox && curl --version && xmlstarlet --version"
}, },
@ -45,7 +45,7 @@ def step(arch, key):
{ {
"name": "test", "name": "test",
"pull": "always", "pull": "always",
"image": "spritsail/docker-test", "image": "registry.spritsail.io/spritsail/docker-test",
"settings": { "settings": {
"curl": ":32400/identity", "curl": ":32400/identity",
"delay": 20, "delay": 20,
@ -56,7 +56,7 @@ def step(arch, key):
{ {
"name": "publish", "name": "publish",
"pull": "always", "pull": "always",
"image": "spritsail/docker-publish", "image": "registry.spritsail.io/spritsail/docker-publish",
"settings": { "settings": {
"registry": {"from_secret": "registry_url"}, "registry": {"from_secret": "registry_url"},
"login": {"from_secret": "registry_login"}, "login": {"from_secret": "registry_login"},
@ -70,42 +70,50 @@ def step(arch, key):
} }
def publish(depends_on): def publish(depends_on):
return { return [
"kind": "pipeline", {
"name": "publish-manifest", "kind": "pipeline",
"depends_on": depends_on, "name": "publish-manifest-%s" % name,
"platform": { "depends_on": depends_on,
"os": "linux", "platform": {
}, "os": "linux",
"steps": [
{
"name": "publish",
"image": "spritsail/docker-multiarch-publish",
"pull": "always",
"settings": {
"tags": [
"plexpass",
"%label io.spritsail.version.plex | %prefix plexpass | %remsuf [0-9a-f]+$ | %auto 2"
],
"src_registry": {"from_secret": "registry_url"},
"src_login": {"from_secret": "registry_login"},
"dest_repo": repo,
"dest_login": {"from_secret": "docker_login"},
},
"when": {
"branch": publish_branches,
"event": ["push"],
},
}, },
], "steps": [
} {
"name": "publish",
"image": "registry.spritsail.io/spritsail/docker-multiarch-publish",
"pull": "always",
"settings": {
"tags": [
"plexpass",
"%label io.spritsail.version.plex | %prefix plexpass | %remsuf [0-9a-f]+$ | %auto 2"
],
"src_registry": {"from_secret": "registry_url"},
"src_login": {"from_secret": "registry_login"},
"dest_registry": registry,
"dest_repo": repo,
"dest_login": {"from_secret": login_secret},
},
"when": {
"branch": publish_branches,
"event": ["push"],
},
},
],
}
for name, registry, login_secret in [
("dockerhub", "index.docker.io", "docker_login"),
("spritsail", "registry.spritsail.io", "spritsail_login"),
("ghcr", "ghcr.io", "ghcr_login"),
]
]
def update_readme(): def update_readme():
return { return {
"kind": "pipeline", "kind": "pipeline",
"name": "update-readme", "name": "update-readme",
"depends_on": [ "depends_on": [
"publish-manifest", "publish-manifest-dockerhub",
], ],
"steps": [ "steps": [
{ {