Skip to content

Docker Image

Docker Image #308

Workflow file for this run

name: Docker Image
on:
schedule:
- cron: '0 0 * * *'
push:
branches:
- main
- test
tags:
- '*'
paths-ignore:
- 'README.md'
- 'install.sh'
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
prepare:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
# This is used to complete the identity challenge
# with sigstore/fulcio when running outside of PRs.
id-token: write
outputs:
alist_tags: ${{ steps.vars.outputs.alist_tags }}
metadata_tags: ${{ steps.vars.outputs.metadata_tags }}
embyserver_tags: ${{ steps.vars.outputs.embyserver_tags }}
embyserver-amilys_tags: ${{ steps.vars.outputs.embyserver-amilys_tags }}
jellyfin_tags: ${{ steps.vars.outputs.jellyfin_tags }}
jellyfin-nyanmisaka_tags: ${{ steps.vars.outputs.jellyfin-nyanmisaka_tags }}
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Determine version and tags
id: vars
run: |
IMAGE_PREFIX="ghcr.io/${{ github.repository_owner }}"
vars=(
"alist"
"metadata"
"embyserver"
"embyserver-amilys"
"jellyfin"
"jellyfin-nyanmisaka"
)
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/}
for var in "${vars[@]}"; do
echo "::set-output name=${var}_tags::${IMAGE_PREFIX}/xiaoya-${var}:latest,${IMAGE_PREFIX}/xiaoya-${var}:${VERSION}"
done
else
LATEST_TAG=${GITHUB_REF#refs/heads/}
for var in "${vars[@]}"; do
echo "::set-output name=${var}_tags::${IMAGE_PREFIX}/xiaoya-${var}:${LATEST_TAG}"
done
fi
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
run: |
docker buildx imagetools create \
--tag ghcr.io/monlor/embyserver:latest \
emby/embyserver:latest \
emby/embyserver_arm64v8:latest \
emby/embyserver_arm32v7
docker buildx imagetools create \
--tag ghcr.io/monlor/embyserver-amilys:latest \
amilys/embyserver:latest \
amilys/embyserver_arm64v8:latest
docker buildx imagetools create \
--tag ghcr.io/monlor/jellyfin-nyanmisaka:latest \
nyanmisaka/jellyfin:240401-amd64 \
nyanmisaka/jellyfin:240401-arm64
build-alist:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
# This is used to complete the identity challenge
# with sigstore/fulcio when running outside of PRs.
id-token: write
needs: prepare
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ github.job }}-${{ github.sha }}
restore-keys: |
${{ github.job }}-
- name: Build and push xiaoya-alist
uses: docker/build-push-action@v4
with:
context: ./alist
push: true
tags: ${{ needs.prepare.outputs.alist_tags }}
platforms: linux/amd64,linux/arm64,linux/arm/v7
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
build-metadata:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
# This is used to complete the identity challenge
# with sigstore/fulcio when running outside of PRs.
id-token: write
needs: prepare
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ github.job }}-${{ github.sha }}
restore-keys: |
${{ github.job }}-
- name: Build and push xiaoya-metadata
uses: docker/build-push-action@v4
with:
context: ./metadata
push: true
tags: ${{ needs.prepare.outputs.metadata_tags }}
platforms: linux/amd64,linux/arm64,linux/arm/v7
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
build-emby:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
# This is used to complete the identity challenge
# with sigstore/fulcio when running outside of PRs.
id-token: write
needs: prepare
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ github.job }}-${{ github.sha }}
restore-keys: |
${{ github.job }}-
- name: Build and push xiaoya-embyserver
uses: docker/build-push-action@v4
with:
context: ./emby
push: true
tags: ${{ needs.prepare.outputs.embyserver_tags }}
platforms: linux/amd64,linux/arm64,linux/arm/v7
build-args: |
BASE_IMAGE=ghcr.io/monlor/embyserver:latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
- name: Build and push xiaoya-embyserver-amilys
uses: docker/build-push-action@v4
with:
context: ./emby
push: true
tags: ${{ needs.prepare.outputs.embyserver-amilys_tags }}
platforms: linux/amd64,linux/arm64
build-args: |
BASE_IMAGE=ghcr.io/monlor/embyserver-amilys:latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
build-jellyfin:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
# This is used to complete the identity challenge
# with sigstore/fulcio when running outside of PRs.
id-token: write
needs: prepare
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ github.job }}-${{ github.sha }}
restore-keys: |
${{ github.job }}-
- name: Build and push xiaoya-jellyfin
uses: docker/build-push-action@v4
with:
context: ./jellyfin
push: true
tags: ${{ needs.prepare.outputs.jellyfin_tags }}
platforms: linux/amd64,linux/arm64,linux/arm/v7
build-args: |
BASE_IMAGE=jellyfin/jellyfin:latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
- name: Build and push xiaoya-jellyfin-nyanmisaka
uses: docker/build-push-action@v4
with:
context: ./jellyfin
push: true
tags: ${{ needs.prepare.outputs.jellyfin-nyanmisaka_tags }}
platforms: linux/amd64,linux/arm64
build-args: |
BASE_IMAGE=ghcr.io/monlor/jellyfin-nyanmisaka:latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache