mirror of
https://github.com/navidrome/navidrome.git
synced 2025-07-14 15:41:18 +03:00
* build: new pipeline, new way to cross-compile and build docker images locally. (#3383) * build: use alternative repositories * build: fix * build: validate taglib downloads * build: control concurrency * build: validate xx version * build: remove taglib download validation as the version can be changed as an argument.
85 lines
2.5 KiB
YAML
85 lines
2.5 KiB
YAML
name: 'Prepare Docker Buildx environment'
|
|
description: 'Downloads and extracts the TagLib library, adding it to PKG_CONFIG_PATH'
|
|
inputs:
|
|
github_token:
|
|
description: 'GitHub token'
|
|
required: true
|
|
default: ''
|
|
hub_repository:
|
|
description: 'Docker Hub repository to push images to'
|
|
required: false
|
|
default: ''
|
|
hub_username:
|
|
description: 'Docker Hub username'
|
|
required: false
|
|
default: ''
|
|
hub_password:
|
|
description: 'Docker Hub password'
|
|
required: false
|
|
default: ''
|
|
outputs:
|
|
tags:
|
|
description: 'Docker image tags'
|
|
value: ${{ steps.meta.outputs.tags }}
|
|
labels:
|
|
description: 'Docker image labels'
|
|
value: ${{ steps.meta.outputs.labels }}
|
|
annotations:
|
|
description: 'Docker image annotations'
|
|
value: ${{ steps.meta.outputs.annotations }}
|
|
version:
|
|
description: 'Docker image version'
|
|
value: ${{ steps.meta.outputs.version }}
|
|
hub_repository:
|
|
description: 'Docker Hub repository'
|
|
value: ${{ env.DOCKER_HUB_REPO }}
|
|
hub_enabled:
|
|
description: 'Is Docker Hub enabled'
|
|
value: ${{ env.DOCKER_HUB_ENABLED }}
|
|
|
|
runs:
|
|
using: 'composite'
|
|
steps:
|
|
- name: Check Docker Hub configuration
|
|
shell: bash
|
|
run: |
|
|
if [ -z "${{inputs.hub_repository}}" ]; then
|
|
echo "DOCKER_HUB_REPO=none" >> $GITHUB_ENV
|
|
echo "DOCKER_HUB_ENABLED=false" >> $GITHUB_ENV
|
|
else
|
|
echo "DOCKER_HUB_REPO=${{inputs.hub_repository}}" >> $GITHUB_ENV
|
|
echo "DOCKER_HUB_ENABLED=true" >> $GITHUB_ENV
|
|
fi
|
|
|
|
- name: Login to Docker Hub
|
|
if: inputs.hub_username != '' && inputs.hub_password != ''
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ inputs.hub_username }}
|
|
password: ${{ inputs.hub_password }}
|
|
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ inputs.github_token }}
|
|
|
|
- name: Set up Docker Buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Extract metadata for Docker image
|
|
id: meta
|
|
uses: docker/metadata-action@v5
|
|
with:
|
|
labels: |
|
|
maintainer=deluan@navidrome.org
|
|
images: |
|
|
name=${{env.DOCKER_HUB_REPO}},enable=${{env.DOCKER_HUB_ENABLED}}
|
|
name=ghcr.io/${{ github.repository }}
|
|
tags: |
|
|
type=ref,event=pr
|
|
type=semver,pattern={{version}}
|
|
type=raw,value=develop,enable={{is_default_branch}}
|