Skip to content

Commit

Permalink
[Maintenance] GitHub workflow for sourceforge build #183 (#184)
Browse files Browse the repository at this point in the history
  • Loading branch information
GioF71 committed Mar 11, 2023
1 parent 286eb8c commit aef7d07
Show file tree
Hide file tree
Showing 4 changed files with 149 additions and 58 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Publish multi-arch Docker images
name: Publish Regular multi-arch Docker images

on:
push:
Expand All @@ -15,25 +15,8 @@ jobs:
strategy:
fail-fast: false
matrix:
base: ["unstable", "sid", "bookworm", "bullseye", "buster", "kinetic", "jammy"]
sourceforge: ["Y", "N"]
exclude:
- base: "kinetic"
sourceforge: "Y"
- base: "jammy"
sourceforge: "Y"
- base: "buster"
sourceforge: "N"
- base: "bookworm"
sourceforge: "Y"
- base: "sid"
sourceforge: "Y"
- base: "sid"
sourceforge: "N"
- base: "unstable"
sourceforge: "Y"
- base: "unstable"
sourceforge: "N"
base: ["bookworm", "bullseye"]
sourceforge: ["N"]

steps:
- name: Checkout
Expand All @@ -55,8 +38,6 @@ jobs:
base_image_from_matrix[bookworm]=debian:bookworm-slim
base_image_from_matrix[buster]=debian:buster-slim
base_image_from_matrix[bullseye]=debian:bullseye-slim
base_image_from_matrix[kinetic]=ubuntu:kinetic
base_image_from_matrix[jammy]=ubuntu:jammy
select_base_image=${base_image_from_matrix[${{ matrix.base }}]}
if [ -z "${select_base_image}" ]; then
Expand All @@ -78,39 +59,17 @@ jobs:
declare -A special_tags
special_tags[kinetic-N]="${image_name}:latest"
special_tags[jammy-N]="${image_name}:stable"
special_tags[bullseye-N]="${image_name}:latest,${image_name}:stable"
special_tags[bookworm-N]="${image_name}:edge"
special_tags[buster-N]="${image_name}:legacy"
special_tags[bullseye-Y]="${image_name}:sourceforge-latest"
special_tags[buster-Y]="${image_name}:sourceforge-legacy"
stable="jammy-N"
latest="kinetic-N"
edge=bookworm-N
legacy="buster-N"
sourceforge_latest="bullseye-Y"
sourceforge_legacy="buster-Y"
tag_stable="stable"
tag_latest="latest"
tag_edge="edge"
tag_legacy="legacy"
tag_sourceforge_latest="sourceforge-latest"
tag_sourceforge_legacy="sourceforge-legacy"
squeezelite_version_str=""
select_squeezelite_version=unknown
distro_id=${{ matrix.base }}
if [ "${{ matrix.sourceforge }}" = "Y" ]; then
select_squeezelite_version="1.9.9-sourceforge"
else
select_squeezelite_version=${sl_versions[${{ matrix.base }}]}
if [ -z "${select_squeezelite_version}" ]; then
select_squeezelite_version=unknown
fi
echo "Version from dictionary: "$select_squeezelite_version" from ["${{ matrix.base }}"]"
select_squeezelite_version=${sl_versions[${{ matrix.base }}]}
if [ -z "${select_squeezelite_version}" ]; then
select_squeezelite_version=unknown
fi
echo "Version from dictionary: "$select_squeezelite_version" from ["${{ matrix.base }}"]"
squeezelite_version_str="squeezelite-"$select_squeezelite_version
tags=""
Expand Down Expand Up @@ -148,12 +107,7 @@ jobs:
else
echo "Not found special tags for ["${building_now}"]";
fi
if [ "${{ matrix.sourceforge }}" = "N" ]; then
tags="${tags},$image_name:${distro_id}";
else
tags="${tags},$image_name:sourceforge-${distro_id}";
fi
tags="${tags},$image_name:${distro_id}";
elif [ "${tag_type}" = "main" ]; then
echo "main tag";
tags="${image_name}:main-${tag_name}-${distro_id}-${squeezelite_version_str}";
Expand All @@ -172,6 +126,7 @@ jobs:
echo "Building tags: ["${tags}"]"
echo "RELEASE_TAGS=${tags}" >> $GITHUB_ENV
echo "BASE_IMAGE=${select_base_image}" >> $GITHUB_ENV
echo "DOWNLOAD_FROM_SOURCEFORGE=N" >> $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
Expand All @@ -191,6 +146,6 @@ jobs:
build-args: |
BASE_IMAGE=${{ env.BASE_IMAGE }}
DOWNLOAD_FROM_SOURCEFORGE=${{ matrix.sourceforge }}
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8
push: true
tags: ${{ env.RELEASE_TAGS }}
134 changes: 134 additions & 0 deletions .github/workflows/docker-multi-arch-sourceforge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
name: Publish SourceForge multi-arch Docker images

on:
push:
tags:
- "release/*"
- "main/*"
- "devel/*"
- "feature/*"
- "daily/*"

jobs:
release:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
base: ["bullseye", "buster"]
sourceforge: ["Y"]

steps:
- name: Checkout
uses: actions/checkout@v3
- name: Prepare for docker build
run: |
ref_type=${{ github.ref_type }}
echo "REF_TYPE: ["$ref_type"]"
ref_name=${{ github.ref_name }}
echo "REF_NAME: ["$ref_name"]"
ref=${{ github.ref }}
echo "REF: ["$ref"]"
declare -A base_image_from_matrix
base_image_from_matrix[unstable]=debian:unstable-slim
base_image_from_matrix[sid]=debian:sid-slim
base_image_from_matrix[bookworm]=debian:bookworm-slim
base_image_from_matrix[buster]=debian:buster-slim
base_image_from_matrix[bullseye]=debian:bullseye-slim
base_image_from_matrix[kinetic]=ubuntu:kinetic
base_image_from_matrix[jammy]=ubuntu:jammy
select_base_image=${base_image_from_matrix[${{ matrix.base }}]}
if [ -z "${select_base_image}" ]; then
select_base_image=debian:buster-slim
fi
echo "Select Base Image [" $select_base_image "]"
image_name=${{secrets.DOCKER_USERNAME}}/squeezelite
declare -A special_tags
special_tags[bullseye-Y]="${image_name}:sourceforge-latest"
special_tags[buster-Y]="${image_name}:sourceforge-legacy"
squeezelite_version_str=""
distro_id=${{ matrix.base }}
squeezelite_version_str="squeezelite-1.9.9-sourceforge"
tags=""
if [ "${ref_type}" = "branch" ]; then
echo "branch mode";
if [ "${ref_name}" = "main" ]; then
echo "main branch";
tags="${image_name}:main-${distro_id}-${squeezelite_version_str}";
elif [ "${ref_name}" = "devel" ]; then
echo "devel branch";
tags="${image_name}:devel-${distro_id}-${squeezelite_version_str}"
else
echo "other branch ["${ref_name}"]";
tags="${image_name}:branch-${ref_name}-${distro_id}-${squeezelite_version_str}";
fi
elif [ "${ref_type}" = "tag" ]; then
echo "tag mode";
echo "tag is ["${ref_name}"]";
tag_type=$(echo ${ref_name} | cut -d '/' -f 1)
tag_name=$(echo ${ref_name} | cut -d '/' -f 2)
if [ "${tag_type}" = "release" ]; then
echo "release tag";
tags="$image_name:${distro_id}-${squeezelite_version_str}"
tags="$tags,$image_name:${distro_id}-${squeezelite_version_str}-${tag_name}"
building_now="${distro_id}-${{ matrix.sourceforge }}";
echo "Building now: ["$building_now"]";
select_special_tags=${special_tags["${building_now}"]};
if [[ -n "${select_special_tags}" ]]; then
echo "Found special tags for ["${building_now}"]=["${select_special_tags}"]";
tags="$tags,${select_special_tags}";
else
echo "Not found special tags for ["${building_now}"]";
fi
tags="${tags},$image_name:sourceforge-${distro_id}";
elif [ "${tag_type}" = "main" ]; then
echo "main tag";
tags="${image_name}:main-${tag_name}-${distro_id}-${squeezelite_version_str}";
elif [ "${tag_type}" = "devel" ]; then
echo "devel tag";
tags="${image_name}:devel-${tag_name}-${distro_id}-${squeezelite_version_str}";
elif [ "${tag_type}" = "feature" ]; then
echo "devel tag";
tags="${image_name}:feature-${tag_name}-${distro_id}-${squeezelite_version_str}";
elif [ "${tag_type}" = "daily" ]; then
echo "daily build";
tags="${tags},${image_name}:daily-${distro_id}-${squeezelite_version_str}";
fi
fi
echo "Building tags: ["${tags}"]"
echo "RELEASE_TAGS=${tags}" >> $GITHUB_ENV
echo "BASE_IMAGE=${select_base_image}" >> $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: all
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
build-args: |
BASE_IMAGE=${{ env.BASE_IMAGE }}
DOWNLOAD_FROM_SOURCEFORGE=${{ matrix.sourceforge }}
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
push: true
tags: ${{ env.RELEASE_TAGS }}
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -401,8 +401,6 @@ From this repository I create all the versions of the image. Each of them featur

Tag|Base Image|SqueezeLite Version|SqueezeLite Origin|Additional Tags
:---|:---:|:---:|:---:|:---
kinetic|ubuntu:kinetic|1.9.9|Debian Repo|latest,squeezelite-1.9.9-kinetic, squeezelite-1.9.9-kinetic-RELEASE
jammy|ubuntu:jammy|1.9.9|Debian Repo|stable,squeezelite-1.9.9-jammy, squeezelite-1.9.9-jammy-RELEASE
bookworm|debian:bookworm-slim|1.9.9|Debian Repo|edge, squeezelite-1.9.9-bookworm, squeezelite-1.9.9-bookworm-RELEASE
bullseye|debian:bullseye-slim|1.9.8|Debian Repo|squeezelite-1.9.8-bullseye, squeezelite-1.9.8-bullseye-RELEASE
buster|debian:buster-slim|1.8|Debian Repositories|legacy, squeezelite-1.8-buster, squeezelite-1.8-buster-RELEASE
Expand Down
4 changes: 4 additions & 0 deletions doc/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ Older build might be dropped in order to save space on docker-hub and incur in l

Date|Type|Description
:---|:---|:---
2023-03-11|Dropped buster as the arm/v6 version of the docker image is not available
2023-03-11|Dropped kinetic and jammy builds, as they don't include arm/v6 versions
2023-03-11|Workflow for regular versions now includes arm/v6 see [#179](https://github.com/GioF71/squeezelite-docker/issues/179)
2023-03-11|Workflow for sourceforge versions (for amd64, arm/v7 and arm64/v8)
2023-01-03|Update|Soureforge binaries version bump
2023-01-03|Documentation|`Release.md` cleanup
2022-12-27|Bug|Fixed issue [#168](https://github.com/GioF71/squeezelite-docker/issues/168)
Expand Down

0 comments on commit aef7d07

Please sign in to comment.