mirror of
https://github.com/spritsail/plex-media-server.git
synced 2024-12-20 11:34:36 +00:00
Joe Groocock
f01f4950ab
Plex now provide a first-party musl Plex build that works without any external dependencies whatsoever. It's built with LLVM with many compiler and linker optimisations enabled: https://forums.plex.tv/t/plex-media-server-forum-preview-faster-and-smaller-builds-with-new-toolchain/699575 Restructure build into multiple distinct Docker build stages to better leverage caching and significantly improve build time on multicore systems with BuildKit, particularly with LTO enabled. Changes for this release include: - Build `FROM spritsail/alpine` instead of `FROM debian` to ensure musl compatibility with all compiled binaries. Use `FROM scratch` for the resulting image. ld-musl is provided by Plex. - Build busybox, su-exec and tini as they're no longer provided by the base image. - Build binaries/libraries with standard hardening flags, including the popular -flto. Signed-off-by: Joe Groocock <me@frebib.net>
75 lines
1.3 KiB
YAML
75 lines
1.3 KiB
YAML
---
|
|
kind: pipeline
|
|
name: build-amd64
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
steps:
|
|
- name: build
|
|
pull: always
|
|
image: spritsail/docker-build
|
|
settings:
|
|
make: true
|
|
|
|
- name: test-bin
|
|
pull: always
|
|
image: spritsail/docker-test
|
|
settings:
|
|
run: |
|
|
busybox && \
|
|
curl --version && \
|
|
xmlstarlet --version
|
|
|
|
- name: test
|
|
pull: always
|
|
image: spritsail/docker-test
|
|
settings:
|
|
curl: :32400/identity
|
|
delay: 5
|
|
pipe: |
|
|
xmlstarlet sel -t -v "/MediaContainer/@version" |
|
|
grep -qw "$(label io.spritsail.version.plex | cut -d- -f1)"
|
|
retry: 10
|
|
|
|
- name: publish
|
|
pull: always
|
|
image: spritsail/docker-publish
|
|
settings:
|
|
repo: spritsail/plex-media-server
|
|
tags:
|
|
- latest
|
|
- "%label io.spritsail.version.plex | %remsuf [0-9a-f]+$ | %auto 2"
|
|
login: {from_secret: docker_login}
|
|
when:
|
|
branch:
|
|
- master
|
|
event:
|
|
- push
|
|
|
|
---
|
|
kind: pipeline
|
|
name: update-readme
|
|
|
|
steps:
|
|
- name: dockerhub-readme
|
|
pull: always
|
|
image: jlesage/drone-push-readme
|
|
settings:
|
|
username: {from_secret: docker_username}
|
|
password: {from_secret: docker_password}
|
|
repo: spritsail/plex-media-server
|
|
when:
|
|
branch:
|
|
- master
|
|
- pass
|
|
event:
|
|
- push
|
|
|
|
---
|
|
kind: signature
|
|
hmac: ee4c475518f6fddf4c2227fdee938a3e8d5c0a63e52fbab79f1133c8f5a2a91d
|
|
|
|
...
|