Skip to content

Commit 6204a1e

Browse files
committed
refactor(ci): Use docker/build-push-action to build docker images
Replace the build-docker.sh script with a GitHub action to standardize the ci workflow and reduce complexity.
1 parent 0654c76 commit 6204a1e

File tree

3 files changed

+47
-77
lines changed

3 files changed

+47
-77
lines changed

.github/scripts/build-docker-alpine.sh

-27
This file was deleted.

.github/scripts/build-docker.sh

-29
This file was deleted.

.github/workflows/ci.yml

+47-21
Original file line numberDiff line numberDiff line change
@@ -651,10 +651,18 @@ jobs:
651651
registry: ghcr.io
652652
username: ${{ github.actor }}
653653
password: ${{ secrets.GITHUB_TOKEN }}
654-
- name: Build docker image
655-
env:
656-
PUBLISH_DOCKER_IMAGE: ${{ needs.build_details.outputs.publish_docker_image }}
657-
run: .github/scripts/build-docker.sh "${{ steps.debian_package.outputs.deb-file }}" "${{ steps.debian_debug_package.outputs.deb-file }}" "${{ needs.build_details.outputs.branch }}" "${{ matrix.platform }}"
654+
- name: Build and push docker image
655+
uses: docker/build-push-action@v6
656+
with:
657+
build-args: |
658+
"DEB_FILE=${{ steps.debian_package.outputs.deb-file }}"
659+
"DEB_DEBUG_FILE=${{ steps.debian_debug_package.outputs.deb-file }}"
660+
context: .
661+
file: .github/docker/debian.dockerfile
662+
tags: |
663+
"savonet/liquidsoap-ci-build:${{ needs.build_details.outputs.branch }}_${{ matrix.platform }}"
664+
"ghcr.io/savonet/liquidsoap-ci-build:${{ needs.build_details.outputs.branch }}_${{ matrix.platform }}"
665+
push: ${{ needs.build_details.outputs.publish_docker_image }}
658666

659667
build_docker_alpine:
660668
runs-on: ${{ matrix.runs-on }}
@@ -691,10 +699,17 @@ jobs:
691699
registry: ghcr.io
692700
username: ${{ github.actor }}
693701
password: ${{ secrets.GITHUB_TOKEN }}
694-
- name: Build docker image
695-
env:
696-
PUBLISH_DOCKER_IMAGE: ${{ needs.build_details.outputs.publish_docker_image }}
697-
run: .github/scripts/build-docker-alpine.sh "${{ steps.alpine_package.outputs.apk-file }}" "${{ needs.build_details.outputs.branch }}" "${{ matrix.platform }}"
702+
- name: Build and push docker image
703+
uses: docker/build-push-action@v6
704+
with:
705+
build-args: |
706+
"APK_FILE=${{ steps.alpine_package.outputs.apk-file }}"
707+
context: .
708+
file: .github/docker/alpine.dockerfile
709+
tags: |
710+
"savonet/liquidsoap-ci-build:${{ needs.build_details.outputs.branch }}_alpine_${{ matrix.platform }}"
711+
"ghcr.io/savonet/liquidsoap-ci-build:${{ needs.build_details.outputs.branch }}_alpine_${{ matrix.platform }}"
712+
push: ${{ needs.build_details.outputs.publish_docker_image }}
698713

699714
build_docker_minimal:
700715
runs-on: ${{ matrix.runs-on }}
@@ -734,14 +749,22 @@ jobs:
734749
registry: ghcr.io
735750
username: ${{ github.actor }}
736751
password: ${{ secrets.GITHUB_TOKEN }}
737-
- name: Build docker image
738-
env:
739-
PUBLISH_DOCKER_IMAGE: ${{ needs.build_details.outputs.publish_docker_image }}
740-
run: .github/scripts/build-docker.sh "${{ steps.debian_package.outputs.deb-file }}" "${{ steps.debian_debug_package.outputs.deb-file }}" "${{ needs.build_details.outputs.branch }}-minimal" "${{ matrix.platform }}"
752+
- name: Build and push docker image
753+
uses: docker/build-push-action@v6
754+
with:
755+
build-args: |
756+
"DEB_FILE=${{ steps.debian_package.outputs.deb-file }}"
757+
"DEB_DEBUG_FILE=${{ steps.debian_debug_package.outputs.deb-file }}"
758+
context: .
759+
file: .github/docker/debian.dockerfile
760+
tags: |
761+
"savonet/liquidsoap-ci-build:${{ needs.build_details.outputs.branch }}-minimal_${{ matrix.platform }}"
762+
"ghcr.io/savonet/liquidsoap-ci-build:${{ needs.build_details.outputs.branch }}-minimal_${{ matrix.platform }}"
763+
push: ${{ needs.build_details.outputs.publish_docker_image }}
741764

742765
build_docker_alpine_minimal:
743766
runs-on: ${{ matrix.runs-on }}
744-
needs: [build_details, run_tests, build_posix, fetch_s3_artifacts]
767+
needs: [build_details, build_posix, fetch_s3_artifacts]
745768
if: needs.build_details.outputs.is_fork != 'true'
746769
strategy:
747770
fail-fast: false
@@ -761,10 +784,6 @@ jobs:
761784
run: |
762785
echo "apk-file=$(find artifacts/${{ needs.build_details.outputs.sha }} -type f | grep minimal | grep 'apk$' | grep -v dbg | grep ${{ matrix.alpine-arch }})" >> "${GITHUB_OUTPUT}"
763786
id: alpine_package
764-
- name: Get alpine debug package
765-
run: |
766-
echo "apk-file=$(find artifacts/${{ needs.build_details.outputs.sha }} -type f | grep minimal | grep 'apk$' | grep dbg | grep ${{ matrix.alpine-arch }})" >> "${GITHUB_OUTPUT}"
767-
id: alpine_dbg_package
768787
- name: Login to Docker Hub
769788
if: needs.build_details.outputs.publish_docker_image == 'true'
770789
uses: docker/login-action@v3
@@ -778,10 +797,17 @@ jobs:
778797
registry: ghcr.io
779798
username: ${{ github.actor }}
780799
password: ${{ secrets.GITHUB_TOKEN }}
781-
- name: Build docker image
782-
env:
783-
PUBLISH_DOCKER_IMAGE: ${{ needs.build_details.outputs.publish_docker_image }}
784-
run: .github/scripts/build-docker-alpine.sh "${{ steps.alpine_package.outputs.apk-file }}" "${{ steps.alpine_dbg_package.outputs.apk-file }}" "${{ needs.build_details.outputs.branch }}-minimal" "${{ matrix.platform }}"
800+
- name: Build and push docker image
801+
uses: docker/build-push-action@v6
802+
with:
803+
build-args: |
804+
"APK_FILE=${{ steps.alpine_package.outputs.apk-file }}"
805+
context: .
806+
file: .github/docker/alpine.dockerfile
807+
tags: |
808+
"savonet/liquidsoap-ci-build:${{ needs.build_details.outputs.branch }}-minimal_alpine_${{ matrix.platform }}"
809+
"ghcr.io/savonet/liquidsoap-ci-build:${{ needs.build_details.outputs.branch }}-minimal_alpine_${{ matrix.platform }}"
810+
push: ${{ needs.build_details.outputs.publish_docker_image }}
785811

786812
build_docker_release:
787813
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)