feat(v1.1.2): Alpine edge variant, dual CI, GHCR edge builds 🚀

- Add Dockerfile.edge 🐚🔧
- Add stable and edge CI matrix 🔁📦
- GHCR edge-only deployment 🟣📤
- SBOMs for both variants 📜🔍
- Tests, screenshots, logo 🧪🖼️
- Update docs and PR template 📝
- Remove dependabot.yml 🗑️
This commit is contained in:
rE-Bo0t.bx1
2025-11-17 23:53:11 +08:00
parent a94d409f2b
commit 47b486c977
4 changed files with 41 additions and 23 deletions

View File

@@ -112,7 +112,7 @@ jobs:
suffix: "-edge"
is_latest: "false"
base: "Alpine edge"
push_dockerhub: "false"
push_dockerhub: "true"
steps:
- name: 📥 Checkout Repository
@@ -231,38 +231,51 @@ jobs:
if [ "$BUILD_TYPE" = "release" ]; then
# New release: Add special tags
if [ "$IS_LATEST" = "true" ]; then
# Stable variant gets :latest and :stable
# Stable variant gets :latest
TAGS+=("${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}:latest")
TAGS+=("${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}:stable")
else
# Edge variant gets :edge only
# Edge variant gets :edge
TAGS+=("${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}:edge")
fi
# Add Docker Hub tags only for stable variant
# Add Docker Hub tags
if [ "$PUSH_DOCKERHUB" = "true" ]; then
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:${VERSION}")
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:latest")
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:stable")
if [ "$IS_LATEST" = "true" ]; then
# Stable: versioned tag + :latest
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:${VERSION}")
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:latest")
else
# Edge: only :edge (no versioned tag for Docker Hub)
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:edge")
fi
fi
elif [ "$BUILD_TYPE" = "weekly" ]; then
# Weekly rebuild: Update version tag with fresh packages
if [ "$IS_LATEST" = "true" ]; then
TAGS+=("${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}:latest")
TAGS+=("${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}:stable")
else
TAGS+=("${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_NAME }}:edge")
fi
if [ "$PUSH_DOCKERHUB" = "true" ]; then
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:${VERSION}")
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:latest")
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:stable")
if [ "$IS_LATEST" = "true" ]; then
# Stable: versioned tag + :latest
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:${VERSION}")
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:latest")
else
# Edge: only :edge (no versioned tag for Docker Hub)
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:edge")
fi
fi
else
# Manual/validated builds: version tag only
if [ "$PUSH_DOCKERHUB" = "true" ]; then
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:${VERSION}${SUFFIX}")
if [ "$IS_LATEST" = "true" ]; then
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:${VERSION}")
else
# Edge manual builds: only :edge for Docker Hub
TAGS+=("${{ env.DOCKERHUB_IMAGE_NAME }}:edge")
fi
fi
fi
@@ -459,12 +472,14 @@ jobs:
echo "" >> release_notes.md
echo "- Base: Alpine edge (bleeding edge)" >> release_notes.md
echo "- ⚠️ **NOT recommended for production** - faster updates, less stable" >> release_notes.md
echo "- Available on GHCR only" >> release_notes.md
echo "" >> release_notes.md
echo "\`\`\`bash" >> release_notes.md
echo "# From GitHub Container Registry (GHCR)" >> release_notes.md
echo "# From GitHub Container Registry (GHCR) - versioned + simple tags" >> release_notes.md
echo "docker pull ${GHCR_IMAGE}:${VERSION}-edge" >> release_notes.md
echo "docker pull ${GHCR_IMAGE}:edge" >> release_notes.md
echo "" >> release_notes.md
echo "# From Docker Hub - simple tag only" >> release_notes.md
echo "docker pull ${DOCKERHUB_IMAGE}:edge" >> release_notes.md
echo "\`\`\`" >> release_notes.md
echo "" >> release_notes.md
echo "### 📋 Software Bill of Materials (SBOM)" >> release_notes.md

View File

@@ -16,7 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
---
## [1.1.2] - 2025-11-17
## [1.1.2] - 2025-11-18
Add Alpine edge variant with dual-track build strategy 🏗️✅ - 🟢/⚠️
@@ -372,7 +372,7 @@ BREAKING CHANGES: None
## 📊 Release Information
* **🎉 First Release:** v1.0.0 (November 1, 2025)
* **📦 Current Stable:** v1.1.2 (November 17, 2025)
* **📦 Current Stable:** v1.1.2 (November 18, 2025)
* **🔗 Latest Release:** [GitHub Releases](https://github.com/r3bo0tbx1/tor-guard-relay/releases/latest)
* **🐳 Docker Images:**

View File

@@ -160,7 +160,7 @@ docker pull r3bo0tbx1/onion-relay:1.1.2
# Pull from GHCR
docker pull ghcr.io/r3bo0tbx1/onion-relay:latest
docker pull ghcr.io/r3bo0tbx1/onion-relay:stable
docker pull ghcr.io/r3bo0tbx1/onion-relay:1.1.2
```
### Edge Variant (Testing Only)
@@ -170,10 +170,13 @@ docker pull ghcr.io/r3bo0tbx1/onion-relay:stable
- ⚡ Bleeding-edge Alpine packages (faster security updates)
- ⚡ Latest Tor and obfs4 versions as soon as available
- ⚠️ **NOT recommended for production** - less stable, potential breaking changes
- ⚠️ Available **only on GHCR** (not Docker Hub)
- 📦 Available on both Docker Hub and GHCR
```bash
# Pull from GHCR only
# Pull from Docker Hub
docker pull r3bo0tbx1/onion-relay:edge
# Pull from GHCR
docker pull ghcr.io/r3bo0tbx1/onion-relay:edge
docker pull ghcr.io/r3bo0tbx1/onion-relay:1.1.2-edge
```
@@ -192,7 +195,7 @@ docker pull ghcr.io/r3bo0tbx1/onion-relay:1.1.2-edge
| Breaking changes | ❌ Rare | ⚠️ Possible |
| Security updates | Weekly | Weekly (newer packages) |
| Package versions | Proven | Bleeding edge |
| Docker Hub | ✅ Yes | ❌ No |
| Docker Hub | ✅ Yes | ✅ Yes |
| GHCR | ✅ Yes | ✅ Yes |
> 💡 **Our recommendation:** Use **stable** for production relays, **edge** only for testing or when you specifically need the latest package versions.

View File

@@ -1,6 +1,6 @@
#!/bin/sh
# docker-entrypoint.sh - Tor Guard Relay initialization and process management
# 🆕 v1.1.1 - Ultra-optimized 17.1 MB build with multi-mode support
# 🆕 v1.1.2 - Ultra-optimized 17.1 MB build with multi-mode support
set -e
@@ -76,7 +76,7 @@ cleanup_and_exit() {
# Startup banner
startup_banner() {
log "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
log "🧅 Tor Guard Relay v1.1.1 - Initialization"
log "🧅 Tor Guard Relay v1.1.2 - Initialization"
log "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
log ""
}