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)
if ctx.build.branch in publish_branches:
builds.append(publish(depends_on))
builds.extend(publish(depends_on))
builds.append(update_readme())
return builds
@ -29,7 +29,7 @@ def step(arch, key):
{
"name": "build",
"pull": "always",
"image": "spritsail/docker-build",
"image": "registry.spritsail.io/spritsail/docker-build",
"settings": {
"make": "true",
},
@ -37,7 +37,7 @@ def step(arch, key):
{
"name": "test-bin",
"pull": "always",
"image": "spritsail/docker-test",
"image": "registry.spritsail.io/spritsail/docker-test",
"settings": {
"run": "busybox && curl --version && xmlstarlet --version"
},
@ -45,7 +45,7 @@ def step(arch, key):
{
"name": "test",
"pull": "always",
"image": "spritsail/docker-test",
"image": "registry.spritsail.io/spritsail/docker-test",
"settings": {
"curl": ":32400/identity",
"delay": 20,
@ -56,7 +56,7 @@ def step(arch, key):
{
"name": "publish",
"pull": "always",
"image": "spritsail/docker-publish",
"image": "registry.spritsail.io/spritsail/docker-publish",
"settings": {
"registry": {"from_secret": "registry_url"},
"login": {"from_secret": "registry_login"},
@ -70,42 +70,50 @@ def step(arch, key):
}
def publish(depends_on):
return {
"kind": "pipeline",
"name": "publish-manifest",
"depends_on": depends_on,
"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"],
},
return [
{
"kind": "pipeline",
"name": "publish-manifest-%s" % name,
"depends_on": depends_on,
"platform": {
"os": "linux",
},
],
}
"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():
return {
"kind": "pipeline",
"name": "update-readme",
"depends_on": [
"publish-manifest",
"publish-manifest-dockerhub",
],
"steps": [
{