diff --git a/.gitignore b/.gitignore index 82c975f..02eeadd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ # Ignore downloaded binaries and verification files -amd64/gitea-* -arm64/gitea-* +dist/ # Ignore build artifacts *.deb diff --git a/amd64/DEBIAN/postinst b/amd64/DEBIAN/postinst new file mode 100755 index 0000000..ce2d509 --- /dev/null +++ b/amd64/DEBIAN/postinst @@ -0,0 +1,11 @@ +#!/bin/sh +set -e + +# Ensure systemd is aware of the new service file +systemctl daemon-reload + +# Enable and start Gitea service +systemctl enable gitea +systemctl restart gitea || true + +exit 0 diff --git a/amd64/DEBIAN/prerm b/amd64/DEBIAN/prerm new file mode 100755 index 0000000..b13377a --- /dev/null +++ b/amd64/DEBIAN/prerm @@ -0,0 +1,7 @@ +#!/bin/sh +set -e + +# Stop the Gitea service before updating/removal +systemctl stop gitea || true + +exit 0 diff --git a/amd64/opt/gitea/bin/gitea b/amd64/opt/gitea/bin/gitea new file mode 100755 index 0000000..f9a2026 Binary files /dev/null and b/amd64/opt/gitea/bin/gitea differ diff --git a/amd64/opt/gitea/gitea.asc b/amd64/opt/gitea/gitea.asc deleted file mode 100644 index 99d858a..0000000 Binary files a/amd64/opt/gitea/gitea.asc and /dev/null differ diff --git a/arm64/DEBIAN/postinst b/arm64/DEBIAN/postinst new file mode 100755 index 0000000..ce2d509 --- /dev/null +++ b/arm64/DEBIAN/postinst @@ -0,0 +1,11 @@ +#!/bin/sh +set -e + +# Ensure systemd is aware of the new service file +systemctl daemon-reload + +# Enable and start Gitea service +systemctl enable gitea +systemctl restart gitea || true + +exit 0 diff --git a/arm64/DEBIAN/prerm b/arm64/DEBIAN/prerm new file mode 100755 index 0000000..b13377a --- /dev/null +++ b/arm64/DEBIAN/prerm @@ -0,0 +1,7 @@ +#!/bin/sh +set -e + +# Stop the Gitea service before updating/removal +systemctl stop gitea || true + +exit 0 diff --git a/arm64/opt/gitea/bin/gitea b/arm64/opt/gitea/bin/gitea new file mode 100755 index 0000000..95e0584 Binary files /dev/null and b/arm64/opt/gitea/bin/gitea differ diff --git a/arm64/opt/gitea/gitea.asc b/arm64/opt/gitea/gitea.asc deleted file mode 100644 index a83fdb1..0000000 Binary files a/arm64/opt/gitea/gitea.asc and /dev/null differ diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..e7075a7 --- /dev/null +++ b/build.sh @@ -0,0 +1,60 @@ +#!/bin/bash +set -e # Exit on error + +# Set Variables +VERSION=$(curl -s https://dl.gitea.com/gitea/version.json | jq -r '.latest.version') +ARCHS=("amd64" "arm64") +GITEA_BASE_URL="https://dl.gitea.com/gitea/${VERSION}" +FILES=("xz" "xz.asc" "xz.sha256" "xz.sha256.asc") + +# Download Gitea Binaries and Signatures +for ARCH in "${ARCHS[@]}"; do + echo "Downloading Gitea ${VERSION} for ${ARCH}..." + for FILE in "${FILES[@]}"; do + FILE_NAME="gitea-${VERSION}-linux-${ARCH}.${FILE}" + FILE_URL="${GITEA_BASE_URL}/${FILE_NAME}" + TARGET_FILE="dist/${ARCH}/${FILE_NAME}" + if [[ -f "$TARGET_FILE" ]]; then + echo "✅ File already exists: $TARGET_FILE (Skipping)" + else + echo "⬇️ Downloading: $FILE_URL" + wget -q "$FILE_URL" -O "$TARGET_FILE" + fi + done +done + +# Verify GPG Signatures +for ARCH in "${ARCHS[@]}"; do + echo "Verifying GPG signature for ${ARCH}..." + gpg --verify "dist/${ARCH}/gitea-${VERSION}-linux-${ARCH}.xz.asc" "dist/${ARCH}/gitea-${VERSION}-linux-${ARCH}.xz" + gpg --verify "dist/${ARCH}/gitea-${VERSION}-linux-${ARCH}.xz.sha256.asc" "dist/${ARCH}/gitea-${VERSION}-linux-${ARCH}.xz.sha256" +done + + +# Verify Checksums +for ARCH in "${ARCHS[@]}"; do + echo "Verifying SHA256 checksum for ${ARCH}..." + (cd "dist/${ARCH}" && sha256sum -c gitea-${VERSION}-linux-${ARCH}.xz.sha256) +done + +# expand the Gitea binray to the target +for ARCH in "${ARCHS[@]}"; do + xz -dc "dist/${ARCH}/gitea-${VERSION}-linux-${ARCH}.xz" > "${ARCH}/opt/gitea/bin/gitea" || { echo "❌ Extraction failed for ${ARCH}"; exit 1; } + + # Verify the extracted file isn't empty + if [[ ! -s "${ARCH}/opt/gitea/bin/gitea" ]]; then + echo "❌ Extracted file is empty for ${ARCH}. Something went wrong!" + exit 1 + fi + chmod +x "${ARCH}/opt/gitea/bin/gitea" +done + +# Build Debian Packages +for ARCH in "${ARCHS[@]}"; do + echo "Building package for ${ARCH}..." + dpkg-deb --build "${ARCH}" "gitea_${VERSION}_${ARCH}.deb" +done + +echo "All packages built successfully:" +ls -lh gitea_${VERSION}_*.deb + diff --git a/gitea-release.asc b/gitea-release.asc new file mode 100644 index 0000000..e69de29