on:
workflow_dispatch:
- # push:
- # branches:
- # - master
- # - development
- # pull_request:
- # types: [opened, synchronize, reopened, ready_for_review]
+ push:
+ branches:
+ - master
+ - development
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review]
env:
DOCKER_PLATFORMS: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64
jobs:
test-build-on-pull-request:
if: github.event_name == 'pull_request'
- runs-on: ubuntu-24.04-arm
+ runs-on: ubuntu-22.04
steps:
- name: Checkout Repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4.2.2
with:
fetch-depth: 0
ref: ${{github.event.pull_request.head.ref}}
echo "SHAIRPORT_SYNC_BRANCH=${SHAIRPORT_SYNC_BRANCH}" >> $GITHUB_ENV
- name: Set up QEMU
- uses: docker/setup-qemu-action@v2.1.0
+ uses: docker/setup-qemu-action@v3.3.0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2.5.0
+ uses: docker/setup-buildx-action@v3.8.0
- name: Build (classic)
- uses: docker/build-push-action@v4.0.0
+ uses: docker/build-push-action@v6.13.0
with:
context: ./
file: ./docker/classic/Dockerfile
SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }}
- name: Build
- uses: docker/build-push-action@v4.0.0
+ uses: docker/build-push-action@v6.13.0
with:
context: ./
file: ./docker/Dockerfile
build-and-publish:
if: github.event_name != 'pull_request'
- runs-on: ubuntu-24.04-arm
+ runs-on: ubuntu-22.04
steps:
- name: Checkout
- uses: actions/checkout@v3.5.2
+ uses: actions/checkout@v4.2.2
with:
fetch-depth: 0
echo "IMAGE_TAG_BASE=development" >> $GITHUB_ENV
- name: Set up QEMU
- uses: docker/setup-qemu-action@v2.1.0
+ uses: docker/setup-qemu-action@v3.3.0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2.5.0
+ uses: docker/setup-buildx-action@v3.8.0
- name: Login to Docker Registry
- uses: docker/login-action@v2.1.0
+ uses: docker/login-action@v3.3.0
with:
registry: ${{ secrets.DOCKER_REGISTRY }}
username: ${{ secrets.DOCKER_REGISTRY_USER }}
password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
- name: Build and push (classic)
- uses: docker/build-push-action@v4.0.0
+ uses: docker/build-push-action@v6.13.0
with:
context: ./
file: ./docker/classic/Dockerfile
SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }}
- name: Build and push
- uses: docker/build-push-action@v4.0.0
+ uses: docker/build-push-action@v6.13.0
with:
context: ./
file: ./docker/Dockerfile
-# Builds & pushes a docker image when a tag is created.
+# Builds & pushes a docker image when a tag is created.
# Tag pattern: '[tag]' & '[tag]-classic'
# 'latest' & 'classic' also, when master tagged.
# Only pushes the tag when it matches one of the following patterns:
-# X, X.Y or X.Y.Z
+# X, X.Y or X.Y.Z
name: Build and push docker (tag)
on:
workflow_dispatch:
- # push:
- # tags:
- # - '[0-9]+' # X
- # - '[0-9]+\.[0-9]+' # X.Y
- # - '[0-9]+\.[0-9]+\.[0-9]+' # X.Y.Z
+ push:
+ tags:
+ - '[0-9]+' # X
+ - '[0-9]+\.[0-9]+' # X.Y
+ - '[0-9]+\.[0-9]+\.[0-9]+' # X.Y.Z
env:
DOCKER_PLATFORMS: linux/386,linux/amd64,linux/arm/v6,linux/arm64,linux/arm/v7
jobs:
main:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3.5.2
ARG NQPTP_BRANCH=main
ARG SHAIRPORT_SYNC_BRANCH=.
-FROM alpine:3.17 AS builder
+FROM alpine:3.20 AS builder
RUN apk -U add \
alsa-lib-dev \
WORKDIR /alac
RUN autoreconf -i
RUN ./configure
-RUN make
+RUN make -j $(nproc)
RUN make install
WORKDIR /
##### ALAC END #####
WORKDIR /nqptp
RUN autoreconf -i
RUN ./configure
-RUN make
+RUN make -j $(nproc)
WORKDIR /
##### NQPTP END #####
##### END BUILD FILES #####
# Shairport Sync Runtime System
-FROM crazymax/alpine-s6:3.17-3.1.1.2
+FROM crazymax/alpine-s6:3.20-3.2.0.2
ENV S6_CMD_WAIT_FOR_SERVICES=1
ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
libgcrypt \
libplist \
libpulse \
- libressl3.6-libcrypto \
+ libressl3.8-libcrypto \
libsndfile \
libsodium \
libuuid \
mosquitto \
popt \
soxr \
- curl && \
- rm -rfv /lib/apk/db/* && \
+ curl \
+ dhclient
+
+RUN rm -rfv /lib/apk/db/* && \
rm -rfv /etc/avahi/services/*.service && \
addgroup shairport-sync && \
adduser -D shairport-sync -G shairport-sync && \