Fixed several issues and made some enhancement to make it more robust. now pushing to both gitea server and github.

This commit is contained in:
ameer
2026-02-16 22:33:08 +08:00
parent 17289aeac4
commit f4b6098eb2
7 changed files with 176 additions and 57 deletions

View File

@@ -3,8 +3,10 @@
set -e
# Configuration
REGISTRY="${REGISTRY:-gitea.ahkhan.me}"
REGISTRY_PATH="${REGISTRY_PATH:-docker}"
REGISTRY="${REGISTRY:-gitea2.ahkhan.me}" # pushed through gitea2 because gitea is behind CF tunnel and has issues with large image pushes.
REGISTRY_PATH="${REGISTRY_PATH:-packages}"
GITHUB_REGISTRY="${GITHUB_REGISTRY:-ghcr.io}"
GITHUB_USER="${GITHUB_USER:-ahkhan03}"
REPO_PREFIX="${REPO_PREFIX:-ubuntu}"
PLATFORMS="${PLATFORMS:-linux/amd64,linux/arm64}"
DATE_TAG=$(date +%Y-%m-%d)
@@ -43,15 +45,18 @@ build_ubuntu_version() {
log "Building Ubuntu ${version}..."
# Build tags for this version
# Build tags for this version (Gitea + GitHub)
local tags=(
"${REGISTRY}/${REGISTRY_PATH}/${repo_name}:latest"
"${REGISTRY}/${REGISTRY_PATH}/${repo_name}:${DATE_TAG}"
"${GITHUB_REGISTRY}/${GITHUB_USER}/${repo_name}:latest"
"${GITHUB_REGISTRY}/${GITHUB_USER}/${repo_name}:${DATE_TAG}"
)
# Add ubuntu:latest tag only for the latest version
if [[ "$version" == "$LATEST_VERSION" ]]; then
tags+=("${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}:latest")
tags+=("${GITHUB_REGISTRY}/${GITHUB_USER}/${REPO_PREFIX}:latest")
fi
# Build tag arguments
@@ -124,7 +129,8 @@ validate_setup() {
# Function to show build summary
show_summary() {
log "Build Summary:"
echo "Registry: $REGISTRY"
echo "Gitea registry: $REGISTRY/$REGISTRY_PATH"
echo "GitHub registry: $GITHUB_REGISTRY/$GITHUB_USER"
echo "Date tag: $DATE_TAG"
echo "Platforms: $PLATFORMS"
echo "Ubuntu versions: ${UBUNTU_VERSIONS[*]}"
@@ -132,11 +138,14 @@ show_summary() {
echo "Images that will be built:"
for version in "${UBUNTU_VERSIONS[@]}"; do
echo " ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}-${version}:latest"
echo " ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}-${version}:${DATE_TAG}"
echo " ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}-${version}:buildcache (cache)"
echo " Gitea: ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}-${version}:latest"
echo " Gitea: ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}-${version}:${DATE_TAG}"
echo " GitHub: ${GITHUB_REGISTRY}/${GITHUB_USER}/${REPO_PREFIX}-${version}:latest"
echo " GitHub: ${GITHUB_REGISTRY}/${GITHUB_USER}/${REPO_PREFIX}-${version}:${DATE_TAG}"
echo " Cache: ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}-${version}:buildcache"
if [[ "$version" == "$LATEST_VERSION" ]]; then
echo " ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}:latest"
echo " Gitea: ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}:latest"
echo " GitHub: ${GITHUB_REGISTRY}/${GITHUB_USER}/${REPO_PREFIX}:latest"
fi
echo ""
done
@@ -169,10 +178,13 @@ main() {
log "Available images:"
for version in "${UBUNTU_VERSIONS[@]}"; do
echo " ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}-${version}:latest"
echo " ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}-${version}:${DATE_TAG}"
echo " Gitea: ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}-${version}:latest"
echo " Gitea: ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}-${version}:${DATE_TAG}"
echo " GitHub: ${GITHUB_REGISTRY}/${GITHUB_USER}/${REPO_PREFIX}-${version}:latest"
echo " GitHub: ${GITHUB_REGISTRY}/${GITHUB_USER}/${REPO_PREFIX}-${version}:${DATE_TAG}"
done
echo " ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}:latest (→ Ubuntu ${LATEST_VERSION})"
echo " Gitea: ${REGISTRY}/${REGISTRY_PATH}/${REPO_PREFIX}:latest (→ Ubuntu ${LATEST_VERSION})"
echo " GitHub: ${GITHUB_REGISTRY}/${GITHUB_USER}/${REPO_PREFIX}:latest (→ Ubuntu ${LATEST_VERSION})"
}
# Help function
@@ -182,10 +194,12 @@ show_help() {
echo "Usage: $0 [OPTIONS]"
echo ""
echo "Environment Variables:"
echo " REGISTRY Docker registry (default: gitea.ahkhan.me)"
echo " REGISTRY_PATH Registry path (default: docker)"
echo " REPO_PREFIX Repository prefix (default: ubuntu)"
echo " PLATFORMS Target platforms (default: linux/amd64,linux/arm64)"
echo " REGISTRY Gitea registry (default: gitea.ahkhan.me)"
echo " REGISTRY_PATH Gitea registry path (default: docker)"
echo " GITHUB_REGISTRY GitHub registry (default: ghcr.io)"
echo " GITHUB_USER GitHub username (default: ahkhan03)"
echo " REPO_PREFIX Repository prefix (default: ubuntu)"
echo " PLATFORMS Target platforms (default: linux/amd64,linux/arm64)"
echo ""
echo "Examples:"
echo " REGISTRY=myregistry.com ./build.sh"