Skip to content

Commit 5042b4d

Browse files
committed
refactor(ci): Use docker/login-action to log in to container registries
1 parent 7aa5e57 commit 5042b4d

File tree

3 files changed

+44
-51
lines changed

3 files changed

+44
-51
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

+11-23
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,32 @@
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

32-
if [ "${PUBLISH_DOCKER_IMAGE}" != "true" ]; then
33-
exit 0
34-
fi
35-
36-
docker login -u "$USER" -p "$PASSWORD"
37-
38-
docker pull "savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}"
3920

4021
docker tag \
4122
"savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}" \
4223
"ghcr.io/savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}"
43-
4424
docker push "ghcr.io/savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}"
25+
26+
if [ "${PUBLISH_DOCKER_IMAGE}" != "true" ]; then
27+
exit 0
28+
fi
29+
30+
31+
docker push "savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}"
32+
#docker push "ghcr.io/savonet/liquidsoap-ci-build:${TAG}_${ARCHITECTURE}"

.github/workflows/ci.yml

+30-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,15 @@ 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: Log in to container registries
682+
if: needs.build_details.outputs.publish_docker_image == 'true'
683+
run: |
684+
echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USER }}" --password-stdin
685+
echo "${{ secrets.GITHUB_TOKEN }}" | docker login -u "${{ github.actor }}" --password-stdin ghcr.io
673686
- name: Build docker image
674687
env:
675688
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 }}
689+
run: .github/scripts/build-docker-alpine.sh "${{ steps.alpine_package.outputs.apk-file }}" "${{ needs.build_details.outputs.branch }}" "${{ matrix.platform }}"
677690

678691
build_docker_minimal:
679692
runs-on: ${{ matrix.runs-on }}
@@ -700,13 +713,15 @@ jobs:
700713
run: |
701714
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}"
702715
id: debian_debug_package
703-
- name: Log in to the github registry
716+
- name: Log in to container registries
704717
if: needs.build_details.outputs.publish_docker_image == 'true'
705-
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
718+
run: |
719+
echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USER }}" --password-stdin
720+
echo "${{ secrets.GITHUB_TOKEN }}" | docker login -u "${{ github.actor }}" --password-stdin ghcr.io
706721
- name: Build docker image
707722
env:
708723
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 }}
724+
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 }}"
710725

711726
build_docker_alpine_minimal:
712727
runs-on: ${{ matrix.runs-on }}
@@ -734,12 +749,15 @@ jobs:
734749
run: |
735750
echo "apk-file=$(find artifacts/${{ needs.build_details.outputs.sha }} -type f | grep minimal | grep 'apk$' | grep dbg | grep ${{ matrix.alpine-arch }})" >> "${GITHUB_OUTPUT}"
736751
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
752+
- name: Log in to container registries
753+
if: needs.build_details.outputs.publish_docker_image == 'true'
754+
run: |
755+
echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USER }}" --password-stdin
756+
echo "${{ secrets.GITHUB_TOKEN }}" | docker login -u "${{ github.actor }}" --password-stdin ghcr.io
739757
- name: Build docker image
740758
env:
741759
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 }}
760+
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 }}"
743761

744762
build_docker_release:
745763
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)