ci: embed build & push script in workflow (#154)

This is to make it possible to build previous versions via the
workflow_dispatch event.
This commit is contained in:
William Boman 2023-03-19 19:52:16 +01:00 committed by GitHub
parent 10b93243bc
commit 7844cb57aa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 33 deletions

View file

@ -58,4 +58,32 @@ jobs:
- name: Build Docker image
env:
PLATFORMS: linux/amd64,linux/arm64/v8,linux/arm/v7
run: ./scripts/build-and-push.sh
run: |
set -euo pipefail
VERSION="$(git describe --exact-match --tags HEAD)"
TAG="$VERSION"
MAJOR_TAG="$(sed -nre 's/^([0-9]+).*/\1/p' <<< "$VERSION")"
DOCKERHUB_IMAGE="thelounge/thelounge"
GITHUB_IMAGE="ghcr.io/thelounge/thelounge"
TAGS=(
"--tag" "${DOCKERHUB_IMAGE}:${TAG}"
"--tag" "${GITHUB_IMAGE}:${TAG}"
)
# If not a pre-release push :latest & MAJOR_TAG
if grep -qE "^[0-9]*\.[0-9]*\.[0-9]*$" <<< "${VERSION}"; then
TAGS+=(
"--tag" "${DOCKERHUB_IMAGE}:latest"
"--tag" "${DOCKERHUB_IMAGE}:${MAJOR_TAG}"
"--tag" "${GITHUB_IMAGE}:latest"
"--tag" "${GITHUB_IMAGE}:${MAJOR_TAG}"
)
fi
docker buildx build \
--push \
--platform "${PLATFORMS}" \
"${TAGS[@]}" \
--file Dockerfile \
.

View file

@ -1,32 +0,0 @@
#!/usr/bin/env bash
# Script executed by GitHub actions.
set -euo pipefail
VERSION="$(git describe --exact-match --tags HEAD)"
TAG="$VERSION"
MAJOR_TAG="$(sed -nre 's/^([0-9]+).*/\1/p' <<< "$VERSION")"
DOCKERHUB_IMAGE="thelounge/thelounge"
GITHUB_IMAGE="ghcr.io/thelounge/thelounge"
TAGS=(
"--tag" "${DOCKERHUB_IMAGE}:${TAG}"
"--tag" "${GITHUB_IMAGE}:${TAG}"
)
# If not a pre-release push :latest & MAJOR_TAG
if grep -qE "^[0-9]*\.[0-9]*\.[0-9]*$" <<< "${VERSION}"; then
TAGS+=(
"--tag" "${DOCKERHUB_IMAGE}:latest"
"--tag" "${DOCKERHUB_IMAGE}:${MAJOR_TAG}"
"--tag" "${GITHUB_IMAGE}:latest"
"--tag" "${GITHUB_IMAGE}:${MAJOR_TAG}"
)
fi
docker buildx build \
--push \
--platform "${PLATFORMS}" \
"${TAGS[@]}" \
--file Dockerfile \
.