Docker build changes, github action updates.
This commit is contained in:
@@ -1,83 +0,0 @@
|
||||
# Builds & pushes a docker image when a "formal" release tag of the format X, X.Y or X.Y.Z occurs, where X, Y and Z are all numbers.
|
||||
# It seems this yaml has to exist on the branch the tag refers to.
|
||||
|
||||
# Thanks to Charles Omer for the workfow upon which this is based.
|
||||
|
||||
# The following docker tags are created & pushed:
|
||||
# trial, trial-classic
|
||||
# not building 'latest' yet...
|
||||
|
||||
name: Formal (X, X.Y or X.Y.Z) release tags -- docker build and push.
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '[0-9]+\.[0-9]+\.[0-9]+' # e.g. 8.9.0
|
||||
- '[0-9]+\.[0-9]+' # e.g. 8.9
|
||||
- '[0-9]+' # e.g. 8
|
||||
- '[0-9]+\.[0-9]+rc[0-9]+' # e.g. 4.1rc0
|
||||
|
||||
env:
|
||||
DOCKER_PLATFORMS: linux/386,linux/amd64,linux/arm/v6,linux/arm64,linux/arm/v7
|
||||
|
||||
jobs:
|
||||
main:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set SHAIRPORT_SYNC_BRANCH env.
|
||||
run: |
|
||||
raw=$(git branch -r --contains ${{ github.ref }})
|
||||
branch=${raw##*/}
|
||||
echo "SHAIRPORT_SYNC_BRANCH=${branch}" >> $GITHUB_ENV
|
||||
|
||||
- name: Set tag env
|
||||
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Determine NQPTP env (part 1).
|
||||
if: ${{ env.SHAIRPORT_SYNC_BRANCH == 'development' }}
|
||||
run: echo "NQPTP_BRANCH=development" >> $GITHUB_ENV
|
||||
|
||||
- name: Determine NQPTP env (part 2).
|
||||
if: ${{ env.SHAIRPORT_SYNC_BRANCH != 'development' }}
|
||||
run: echo "NQPTP_BRANCH=main" >> $GITHUB_ENV
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
- name: Login to Docker Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ secrets.DOCKER_REGISTRY }}
|
||||
username: ${{ secrets.DOCKER_REGISTRY_USER }}
|
||||
password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: ./
|
||||
file: ./docker/Dockerfile
|
||||
platforms: ${{ env.DOCKER_PLATFORMS }}
|
||||
push: true
|
||||
tags: trial
|
||||
build-args: |
|
||||
SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }}
|
||||
NQPTP_BRANCH=${{ env.NQPTP_BRANCH }}
|
||||
|
||||
- name: Build and push (Classic)
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: ./
|
||||
file: ./docker/classic/Dockerfile
|
||||
platforms: ${{ env.DOCKER_PLATFORMS }}
|
||||
push: true
|
||||
tags: trial-classic
|
||||
build-args: |
|
||||
SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }}
|
||||
@@ -1,14 +1,19 @@
|
||||
# Builds & pushes a docker image when a commit is made to one of the branches specified below.
|
||||
# Tag pattern: 'unstable-[BRANCH NAME]' & 'unstable-[BRANCH NAME]-classic'
|
||||
# Builds a docker image when a commit is made. Also pushes the build if the branch is 'master' or 'development'.
|
||||
|
||||
name: Build and push docker image based on commit to specified branches.
|
||||
# Tag pattern
|
||||
# 'master' - latest, latest-classic
|
||||
# 'development' - development, development-classic
|
||||
|
||||
name: Build and push docker (commit)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ development ]
|
||||
branches:
|
||||
- '**'
|
||||
|
||||
env:
|
||||
DOCKER_PLATFORMS: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64
|
||||
NQPTP_BRANCH: main
|
||||
|
||||
jobs:
|
||||
main:
|
||||
@@ -22,13 +27,16 @@ jobs:
|
||||
- name: Set SHAIRPORT_SYNC_BRANCH env.
|
||||
run: echo "SHAIRPORT_SYNC_BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Determine NQPTP env (part 1).
|
||||
if: ${{ env.SHAIRPORT_SYNC_BRANCH == 'development' }}
|
||||
run: echo "NQPTP_BRANCH=development" >> $GITHUB_ENV
|
||||
- name: Is branch "master"?
|
||||
if: ${{ env.SHAIRPORT_SYNC_BRANCH == 'master' }}
|
||||
run: |
|
||||
echo "IMAGE_TAG_BASE=latest" >> $GITHUB_ENV
|
||||
|
||||
- name: Determine NQPTP env (part 2).
|
||||
if: ${{ env.SHAIRPORT_SYNC_BRANCH != 'development' }}
|
||||
run: echo "NQPTP_BRANCH=main" >> $GITHUB_ENV
|
||||
- name: Is branch "development"?
|
||||
if: ${{ env.SHAIRPORT_SYNC_BRANCH == 'development' }}
|
||||
run: |
|
||||
echo "NQPTP_BRANCH=development" >> $GITHUB_ENV
|
||||
echo "IMAGE_TAG_BASE=development" >> $GITHUB_ENV
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
@@ -43,33 +51,25 @@ jobs:
|
||||
username: ${{ secrets.DOCKER_REGISTRY_USER }}
|
||||
password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
|
||||
|
||||
- name: Set tag start (part 1).
|
||||
if: ${{ env.SHAIRPORT_SYNC_BRANCH == 'master' }}
|
||||
run: echo "IMAGE_TAG_BASE=unstable" >> $GITHUB_ENV
|
||||
|
||||
- name: Set tag start (part 2).
|
||||
if: ${{ env.SHAIRPORT_SYNC_BRANCH != 'master' }}
|
||||
run: echo "IMAGE_TAG_BASE=unstable-${{ env.SHAIRPORT_SYNC_BRANCH }}" >> $GITHUB_ENV
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: ./
|
||||
file: ./docker/Dockerfile
|
||||
platforms: ${{ env.DOCKER_PLATFORMS }}
|
||||
push: true
|
||||
push: ${{ env.IMAGE_TAG_BASE != '' }}
|
||||
tags: ${{ secrets.DOCKER_IMAGE_NAME }}:${{ env.IMAGE_TAG_BASE }}
|
||||
build-args: |
|
||||
SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }}
|
||||
NQPTP_BRANCH=${{ env.NQPTP_BRANCH }}
|
||||
|
||||
- name: Build and push (AirPlay 1)
|
||||
- name: Build and push (classic)
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: ./
|
||||
file: ./docker/classic/Dockerfile
|
||||
platforms: ${{ env.DOCKER_PLATFORMS }}
|
||||
push: true
|
||||
push: ${{ env.IMAGE_TAG_BASE != '' }}
|
||||
tags: ${{ secrets.DOCKER_IMAGE_NAME }}:${{ env.IMAGE_TAG_BASE }}-classic
|
||||
build-args: |
|
||||
SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }}
|
||||
@@ -1,18 +1,22 @@
|
||||
# Builds & pushes a docker image when a tag occurs.
|
||||
# It seems this yaml has to exist on the branch the tag refers to.
|
||||
# Builds & pushes a docker image when a tag is created.
|
||||
# Tag pattern: '[tag]' & '[tag]-classic'
|
||||
# 'stable' & 'stable-classic' also, when master tagged.
|
||||
|
||||
# The following docker tags are created & pushed:
|
||||
# [RELEASE TAG], [RELEASE TAG]-classic,
|
||||
# Only pushes the tag when it matches one of the following patterns:
|
||||
# X, X.Y or X.Y.Z
|
||||
|
||||
name: Build and push docker images on releases.
|
||||
name: Build and push docker (tag)
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*' # Push events to every tag (not containing '/')
|
||||
- '[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
|
||||
NQPTP_BRANCH: main
|
||||
|
||||
jobs:
|
||||
main:
|
||||
@@ -32,22 +36,23 @@ jobs:
|
||||
- name: Set tag env
|
||||
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Determine NQPTP env (part 1).
|
||||
- name: Is branch "master"?
|
||||
if: ${{ env.SHAIRPORT_SYNC_BRANCH == 'master' }}
|
||||
run: echo "STABLE_TAG=true" >> $GITHUB_ENV
|
||||
|
||||
- name: Is branch "development"?
|
||||
if: ${{ env.SHAIRPORT_SYNC_BRANCH == 'development' }}
|
||||
run: echo "NQPTP_BRANCH=development" >> $GITHUB_ENV
|
||||
|
||||
- name: Determine NQPTP env (part 2).
|
||||
if: ${{ env.SHAIRPORT_SYNC_BRANCH != 'development' }}
|
||||
run: echo "NQPTP_BRANCH=main" >> $GITHUB_ENV
|
||||
run: |
|
||||
echo "NQPTP_BRANCH=development" >> $GITHUB_ENV
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to Docker Registry
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ secrets.DOCKER_REGISTRY }}
|
||||
username: ${{ secrets.DOCKER_REGISTRY_USER }}
|
||||
@@ -60,18 +65,22 @@ jobs:
|
||||
file: ./docker/Dockerfile
|
||||
platforms: ${{ env.DOCKER_PLATFORMS }}
|
||||
push: true
|
||||
tags: ${{ secrets.DOCKER_IMAGE_NAME }}:${{ env.GIT_TAG }}
|
||||
tags: |
|
||||
${{ secrets.DOCKER_IMAGE_NAME }}:${{ env.GIT_TAG }}
|
||||
${{ env.STABLE_TAG == 'true' && format('{0}:stable', secrets.DOCKER_IMAGE_NAME) || '' }}
|
||||
build-args: |
|
||||
SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }}
|
||||
NQPTP_BRANCH=${{ env.NQPTP_BRANCH }}
|
||||
|
||||
- name: Build and push (Classic)
|
||||
- name: Build and push (classic)
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: ./
|
||||
file: ./docker/classic/Dockerfile
|
||||
platforms: ${{ env.DOCKER_PLATFORMS }}
|
||||
push: true
|
||||
tags: ${{ secrets.DOCKER_IMAGE_NAME }}:${{ env.GIT_TAG }}-classic
|
||||
tags: |
|
||||
${{ secrets.DOCKER_IMAGE_NAME }}:${{ env.GIT_TAG }}-classic
|
||||
${{ env.STABLE_TAG == 'true' && format('{0}:stable-classic', secrets.DOCKER_IMAGE_NAME) || '' }}
|
||||
build-args: |
|
||||
SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }}
|
||||
+19
-8
@@ -2,21 +2,32 @@
|
||||
|
||||
Available at: https://hub.docker.com/r/mikebrady/shairport-sync
|
||||
|
||||
Please note if you want the development version of the image including Airplay 2 support, please pull the image with the ```unstable development``` tag using the following command:
|
||||
```
|
||||
docker pull mikebrady/shairport-sync:unstable-development
|
||||
The following docker tags are available:
|
||||
```
|
||||
[tag]
|
||||
[tag]-classic
|
||||
|
||||
When using the below commands, you should replace mikebrady/shairport-sync with mikbrady/shairport-sync:unstable-development.
|
||||
(build from newest tag)
|
||||
stable
|
||||
stable-classic
|
||||
|
||||
(latest build from master)
|
||||
latest
|
||||
latest-classic
|
||||
|
||||
(latest build from development)
|
||||
development
|
||||
development-classic
|
||||
```
|
||||
|
||||
## Example Docker Compose File
|
||||
See the `docker-compose.yaml` file in this folder for an example.
|
||||
|
||||
## Docker Run
|
||||
## Example Docker Run
|
||||
|
||||
```
|
||||
$ docker run -d --restart unless-stopped --net host --device /dev/snd \
|
||||
mikebrady/shairport-sync
|
||||
mikebrady/shairport-sync:<tag>
|
||||
```
|
||||
|
||||
### Options
|
||||
@@ -24,7 +35,7 @@ $ docker run -d --restart unless-stopped --net host --device /dev/snd \
|
||||
You can change the default commands passed to Shairport Sync. Here is an example:
|
||||
```
|
||||
$ docker run -d --restart unless-stopped --net host --device /dev/snd \
|
||||
mikebrady/shairport-sync:unstable-development shairport-sync -v \
|
||||
mikebrady/shairport-sync:<tag> shairport-sync -v \
|
||||
--statistics -a DenSystem -d hw:0 -c PCM
|
||||
```
|
||||
This will sent audio to alsa hardware device `hw:0` and make use of the that device's mixer control called `PCM`. The service will be visible as `DenSystem` on the network.
|
||||
@@ -53,4 +64,4 @@ Requires the following secrets to be set in the repo:
|
||||
- `DOCKER_REGISTRY` - docker.io if using Docker Hub, else set to your registry URL.
|
||||
- `DOCKER_REGISTRY_TOKEN` - Access token for your registry.
|
||||
- `DOCKER_REGISTRY_USER` - Login user for your registry.
|
||||
- `DOCKER_IMAGE_NAME` - The name of the image, for example `your-registry.com/shairport-sync` or just `your-username/shairport-sync` if using Docker Hub.
|
||||
- `DOCKER_IMAGE_NAME` - The name of the image, for example `your-registry.com/shairport-sync` or just `your-username/shairport-sync` if using Docker Hub.
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
services:
|
||||
shairport-sync:
|
||||
image: mikebrady/shairport-sync:unstable-development
|
||||
image: mikebrady/shairport-sync:<tag>
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
devices:
|
||||
|
||||
Reference in New Issue
Block a user