Skip to content

Cluster Release

Cluster Release #45

Workflow file for this run

name: Cluster Release
on:
schedule:
- cron: '0 0 1 * *'
workflow_dispatch:
env:
REPO_A_COUNT: 9
REPO_B_COUNT: 1
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Git identity
run: |
git config --global user.name "dopaemon"
git config --global user.email "polarisdp@gmail.com"
- name: Remove old Packages
run: |
rm -f Packages Packages.bz2 scan.log tmp.log removed.list
- name: Clone & Build Cluster A Packages (with broken .deb filter)
run: |
for i in $(seq 1 $REPO_A_COUNT); do
echo "==== Cluster A$i ===="
git clone --filter=blob:none --depth=1 https://github.com/CydiaBlock/package_debian_A$i.git
cd package_debian_A$i
echo "🔎 Checking .deb files in A$i ..."
while IFS= read -r -d '' f; do
if ! dpkg-deb -I "$f" >/dev/null 2>&1; then
echo "❌ Broken deb removed: $f"
rm -f -- "$f"
fi
done < <(find . -type f -name "*.deb" -print0)
# per-file scan để loại bỏ .deb làm dpkg-scanpackages fail
removed_any=0
while IFS= read -r -d '' f; do
if ! dpkg-scanpackages -m "$f" /dev/null > /dev/null 2> tmp.log; then
echo "❌ Removing bad package: $f"
rm -f -- "$f"
echo "$f" >> ../removed.list
removed_any=1
fi
done < <(find . -type f -name "*.deb" -print0)
dpkg-scanpackages -m . /dev/null >> ../Packages
echo "" >> ../Packages
cd ..
rm -rf package_debian_A$i
done
- name: Clone & Build Cluster B Packages (with broken .deb filter)
run: |
for i in $(seq 1 $REPO_B_COUNT); do
echo "==== Cluster B$i ===="
git clone --filter=blob:none --depth=1 https://github.com/CydiaBlock/package_debian_B$i.git
cd package_debian_B$i
echo "🔎 Checking .deb files in B$i ..."
while IFS= read -r -d '' f; do
if ! dpkg-deb -I "$f" >/dev/null 2>&1; then
echo "❌ Broken deb removed: $f"
rm -f -- "$f"
fi
done < <(find . -type f -name "*.deb" -print0)
removed_any=0
while IFS= read -r -d '' f; do
if ! dpkg-scanpackages -m "$f" /dev/null > /dev/null 2> tmp.log; then
echo "❌ Removing bad package: $f"
rm -f -- "$f"
echo "$f" >> ../removed.list
removed_any=1
fi
done < <(find . -type f -name "*.deb" -print0)
dpkg-scanpackages -m . /dev/null >> ../Packages
echo "" >> ../Packages
cd ..
rm -rf package_debian_B$i
done
- name: Format and Clean Packages
run: |
sed -i 's|Filename: \./|Filename: |' Packages
sed -i 's/: !CydiaVn-/: /g' Packages
sed -i 's/: !GSMVN-/: /g' Packages
sed -i 's/: !GSMVN For OS3.0/: Tools/g' Packages
sed -i 's/: HiPhone-Tools/: Tools/g' Packages
sed -i 's/: iSystem/: System/g' Packages
sed -i 's/: iOS4/: Tweaks/g' Packages
sed -i 's/: GSMVN-/: /g' Packages
sed -i 's/: VietHoa/: Packaging/g' Packages
sed -i 's/: Apps/: Applications/g' Packages
sed -i 's/: Emulators/: System/g' Packages
sed -i 's/: !Cydia-/: /g' Packages
sed -i 's/: Applicationstore/: Applications/g' Packages
sed -i 's/: andydam/: Applications/g' Packages
sed -i 's/: CrackTouch Repo/: Themes/g' Packages
sed -i 's/: Hackers.nl/: Hacks/g' Packages
sed -i 's/: iClarified.nl/: Hacks/g' Packages
sed -i 's/: iDWANEO.org/: Hacks/g' Packages
sed -i 's/: IHR-Utilities/: Hacks/g' Packages
sed -i 's/: iTweaks/: Tweaks/g' Packages
sed -i 's/: iUtilities/: Tweaks/g' Packages
sed -i 's/: LockInfo/: Tweaks/g' Packages
sed -i 's/: MinecraftPE/: Hacks/g' Packages
sed -i 's/: PF Apps/: Tweaks/g' Packages
sed -i 's/: Terminals/: System/g' Packages
sed -i 's/: MCPE/: Hacks/g' Packages
sed -i 's/: Core System/: System/g' Packages
sed -i 's/: Hackulo.us/: Tweaks/g' Packages
sed -i 's/: iClarified/: Tweaks/g' Packages
sed -i 's/: iMods/: DLC/g' Packages
sed -i '/^Icon:/d' Packages
- name: Compress
run: bzip2 -fks Packages
- name: Commit and push changes
uses: devops-infra/action-commit-push@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
commit_message: "Cluster Repo Updated"
- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./
gh-pages:
runs-on: ubuntu-latest
needs: build
permissions:
contents: read
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4