Skip to content

Commit 43d1eee

Browse files
committed
refactor(ci): Use docker/login-action to log in to container registries
1 parent afd6619 commit 43d1eee

File tree

3 files changed

+61
-47
lines changed

3 files changed

+61
-47
lines changed
+3-16
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,27 @@
11
#!/bin/sh
22

3-
set -e
3+
set -eux
44

55
APK_FILE="$1"
66
TAG="$2"
7-
USER="$3"
8-
PASSWORD="$4"
9-
ARCHITECTURE="$5"
7+
ARCHITECTURE="$3"
108

11-
cp "$APK_FILE" .
12-
13-
if [ "${PUBLISH_DOCKER_IMAGE}" = "true" ]; then
14-
PUSH_OPTION=--push
15-
fi
16-
17-
# shellcheck disable=SC2086
189
docker build \
1910
--pull \
2011
--no-cache \
2112
--provenance false \
2213
--build-arg "APK_FILE=$APK_FILE" \
2314
--file .github/docker/alpine.dockerfile \
2415
--tag "savonet/liquidsoap-ci-build:${TAG}_alpine_${ARCHITECTURE}" \
25-
${PUSH_OPTION} \
2616
.
2717

2818
if [ "${PUBLISH_DOCKER_IMAGE}" != "true" ]; then
2919
exit 0
3020
fi
3121

32-
docker login -u "$USER" -p "$PASSWORD"
33-
34-
docker pull "savonet/liquidsoap-ci-build:${TAG}_alpine_${ARCHITECTURE}"
35-
3622
docker tag \
3723
"savonet/liquidsoap-ci-build:${TAG}_alpine_${ARCHITECTURE}" \
3824
"ghcr.io/savonet/liquidsoap-ci-build:${TAG}_alpine_${ARCHITECTURE}"
3925

26+
docker push "savonet/liquidsoap-ci-build:${TAG}_alpine_${ARCHITECTURE}"
4027
docker push "ghcr.io/savonet/liquidsoap-ci-build:${TAG}_alpine_${ARCHITECTURE}"

.github/scripts/build-docker.sh

+4-19
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,29 @@
11
#!/bin/sh
22

3-
set -e
3+
set -eux
44

55
DEB_FILE="$1"
66
DEB_DEBUG_FILE="$2"
77
TAG="$3"
8-
USER="$4"
9-
PASSWORD="$5"
10-
ARCHITECTURE="$6"
8+
ARCHITECTURE="$4"
119

12-
cp "$DEB_FILE" "$DEB_DEBUG_FILE" .
13-
14-
DOCKERFILE=.github/docker/debian.dockerfile
15-
16-
if [ "${PUBLISH_DOCKER_IMAGE}" = "true" ]; then
17-
PUSH_OPTION=--push
18-
fi
19-
20-
# shellcheck disable=SC2086
2110
docker build \
2211
--pull \
2312
--no-cache \
2413
--provenance false \
2514
--build-arg "DEB_FILE=$DEB_FILE" \
2615
--build-arg "DEB_DEBUG_FILE=$DEB_DEBUG_FILE" \
27-
--file "${DOCKERFILE}" \
16+
--file .github/docker/debian.dockerfile \
2817
--tag "savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}" \
29-
${PUSH_OPTION} \
3018
.
3119

3220
if [ "${PUBLISH_DOCKER_IMAGE}" != "true" ]; then
3321
exit 0
3422
fi
3523

36-
docker login -u "$USER" -p "$PASSWORD"
37-
38-
docker pull "savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}"
39-
4024
docker tag \
4125
"savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}" \
4226
"ghcr.io/savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}"
4327

28+
docker push "savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}"
4429
docker push "ghcr.io/savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}"

.github/workflows/ci.yml

+54-12
Original file line numberDiff line numberDiff line change
@@ -638,13 +638,23 @@ jobs:
638638
run: |
639639
echo "deb-file=$(find artifacts/${{ needs.build_details.outputs.sha }} -type f | grep ${{ matrix.docker-debian-os }} | grep -v minimal | grep '${{ matrix.platform }}\.deb$' | grep dbgsym | grep deb)" >> "${GITHUB_OUTPUT}"
640640
id: debian_debug_package
641-
- name: Log in to the github registry
641+
- name: Login to Docker Hub
642642
if: needs.build_details.outputs.publish_docker_image == 'true'
643-
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
643+
uses: docker/login-action@v3
644+
with:
645+
username: ${{ secrets.DOCKERHUB_USER }}
646+
password: ${{ secrets.DOCKERHUB_PASSWORD }}
647+
- name: Login to GitHub Container Registry
648+
if: needs.build_details.outputs.publish_docker_image == 'true'
649+
uses: docker/login-action@v3
650+
with:
651+
registry: ghcr.io
652+
username: ${{ github.actor }}
653+
password: ${{ secrets.GITHUB_TOKEN }}
644654
- name: Build docker image
645655
env:
646656
PUBLISH_DOCKER_IMAGE: ${{ needs.build_details.outputs.publish_docker_image }}
647-
run: .github/scripts/build-docker.sh ${{ steps.debian_package.outputs.deb-file }} ${{ steps.debian_debug_package.outputs.deb-file }} ${{ needs.build_details.outputs.branch }} ${{ secrets.DOCKERHUB_USER }} ${{ secrets.DOCKERHUB_PASSWORD }} ${{ matrix.platform }}
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 }}"
648658

649659
build_docker_alpine:
650660
runs-on: ${{ matrix.runs-on }}
@@ -668,12 +678,23 @@ jobs:
668678
run: |
669679
echo "apk-file=$(find artifacts/${{ needs.build_details.outputs.sha }} -type f | grep -v minimal | grep 'apk$' | grep -v dbg | grep ${{ matrix.alpine-arch }})" >> "${GITHUB_OUTPUT}"
670680
id: alpine_package
671-
- name: Log in to the github registry
672-
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
681+
- name: Login to Docker Hub
682+
if: needs.build_details.outputs.publish_docker_image == 'true'
683+
uses: docker/login-action@v3
684+
with:
685+
username: ${{ secrets.DOCKERHUB_USER }}
686+
password: ${{ secrets.DOCKERHUB_PASSWORD }}
687+
- name: Login to GitHub Container Registry
688+
if: needs.build_details.outputs.publish_docker_image == 'true'
689+
uses: docker/login-action@v3
690+
with:
691+
registry: ghcr.io
692+
username: ${{ github.actor }}
693+
password: ${{ secrets.GITHUB_TOKEN }}
673694
- name: Build docker image
674695
env:
675696
PUBLISH_DOCKER_IMAGE: ${{ needs.build_details.outputs.publish_docker_image }}
676-
run: .github/scripts/build-docker-alpine.sh ${{ steps.alpine_package.outputs.apk-file }} ${{ needs.build_details.outputs.branch }} ${{ secrets.DOCKERHUB_USER }} ${{ secrets.DOCKERHUB_PASSWORD }} ${{ matrix.platform }}
697+
run: .github/scripts/build-docker-alpine.sh "${{ steps.alpine_package.outputs.apk-file }}" "${{ needs.build_details.outputs.branch }}" "${{ matrix.platform }}"
677698

678699
build_docker_minimal:
679700
runs-on: ${{ matrix.runs-on }}
@@ -700,13 +721,23 @@ jobs:
700721
run: |
701722
echo "deb-file=$(find artifacts/${{ needs.build_details.outputs.sha }} -type f | grep ${{ matrix.docker-debian-os }} | grep minimal | grep '${{ matrix.platform }}\.deb$' | grep dbgsym | grep deb)" >> "${GITHUB_OUTPUT}"
702723
id: debian_debug_package
703-
- name: Log in to the github registry
724+
- name: Login to Docker Hub
704725
if: needs.build_details.outputs.publish_docker_image == 'true'
705-
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
726+
uses: docker/login-action@v3
727+
with:
728+
username: ${{ secrets.DOCKERHUB_USER }}
729+
password: ${{ secrets.DOCKERHUB_PASSWORD }}
730+
- name: Login to GitHub Container Registry
731+
if: needs.build_details.outputs.publish_docker_image == 'true'
732+
uses: docker/login-action@v3
733+
with:
734+
registry: ghcr.io
735+
username: ${{ github.actor }}
736+
password: ${{ secrets.GITHUB_TOKEN }}
706737
- name: Build docker image
707738
env:
708739
PUBLISH_DOCKER_IMAGE: ${{ needs.build_details.outputs.publish_docker_image }}
709-
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 ${{ secrets.DOCKERHUB_USER }} ${{ secrets.DOCKERHUB_PASSWORD }} ${{ matrix.platform }}
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 }}"
710741

711742
build_docker_alpine_minimal:
712743
runs-on: ${{ matrix.runs-on }}
@@ -734,12 +765,23 @@ jobs:
734765
run: |
735766
echo "apk-file=$(find artifacts/${{ needs.build_details.outputs.sha }} -type f | grep minimal | grep 'apk$' | grep dbg | grep ${{ matrix.alpine-arch }})" >> "${GITHUB_OUTPUT}"
736767
id: alpine_dbg_package
737-
- name: Log in to the github registry
738-
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
768+
- name: Login to Docker Hub
769+
if: needs.build_details.outputs.publish_docker_image == 'true'
770+
uses: docker/login-action@v3
771+
with:
772+
username: ${{ secrets.DOCKERHUB_USER }}
773+
password: ${{ secrets.DOCKERHUB_PASSWORD }}
774+
- name: Login to GitHub Container Registry
775+
if: needs.build_details.outputs.publish_docker_image == 'true'
776+
uses: docker/login-action@v3
777+
with:
778+
registry: ghcr.io
779+
username: ${{ github.actor }}
780+
password: ${{ secrets.GITHUB_TOKEN }}
739781
- name: Build docker image
740782
env:
741783
PUBLISH_DOCKER_IMAGE: ${{ needs.build_details.outputs.publish_docker_image }}
742-
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 ${{ secrets.DOCKERHUB_USER }} ${{ secrets.DOCKERHUB_PASSWORD }} ${{ matrix.platform }}
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 }}"
743785

744786
build_docker_release:
745787
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)