Sync ZDK #292
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Sync ZDK | |
| on: | |
| schedule: | |
| - cron: '0 */12 * * *' | |
| workflow_dispatch: | |
| jobs: | |
| update-and-build: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout ZDK | |
| uses: actions/checkout@v4 | |
| - name: Download Headers | |
| run: | | |
| # 1. Download EVERYTHING for the package | |
| libs=( "zvec" "zlist" "zmap" "zstr" "zalloc" "zops" "zerror" "zrand" "zmath" "zthread" "ztree" "zfile" "zwasm" "znet" "ztime") | |
| BASE_URL="https://raw.githubusercontent.com/z-libs" | |
| echo "Fetching latest headers..." | |
| for lib in "${libs[@]}"; do | |
| wget -q "$BASE_URL/$lib.h/main/$lib.h" -O "$lib.h" | |
| done | |
| - name: Generate zworld.h | |
| run: | | |
| echo "/* zworld.h - The Z-Libs Development Kit World */" > zworld.h | |
| echo "/* Auto-generated. Includes common utilities only. */" >> zworld.h | |
| echo "#ifndef ZWORLD_H" >> zworld.h | |
| echo "#define ZWORLD_H" >> zworld.h | |
| echo "" >> zworld.h | |
| # We only include "safe" utility libraries in zworld.h | |
| # Excluded: zerror.h, zalloc.h, zops.h (require manual config/order) | |
| libs=( "zvec" "zlist" "zmap" "zstr" "zrand" "zmath" "zthread" "zfile" "zwasm" "znet" "ztime" ) | |
| for lib in "${libs[@]}"; do | |
| echo "#include \"$lib.h\"" >> zworld.h | |
| done | |
| echo "" >> zworld.h | |
| echo "#endif // ZWORLD_H" >> zworld.h | |
| - name: Commit Source Changes | |
| run: | | |
| git config user.name "zdk-bot" | |
| git config user.email "bot@zlibs.github.io" | |
| if [[ -n $(git status --porcelain) ]]; then | |
| git add *.h | |
| git commit -m "chore(sync): update ZDK headers" | |
| git push | |
| else | |
| echo "No source changes detected." | |
| fi | |
| - name: Build .deb | |
| run: | | |
| mkdir -p package/DEBIAN | |
| echo "Package: zdk" > package/DEBIAN/control | |
| echo "Version: 1.0.${{ github.run_number }}" >> package/DEBIAN/control | |
| echo "Section: devel" >> package/DEBIAN/control | |
| echo "Priority: optional" >> package/DEBIAN/control | |
| echo "Architecture: all" >> package/DEBIAN/control | |
| echo "Maintainer: Z-Libs Team <maintainer@z-libs.github.io>" >> package/DEBIAN/control | |
| echo "Description: The Z Development Kit (ZDK)" >> package/DEBIAN/control | |
| echo " A collection of zero-dependency C libraries." >> package/DEBIAN/control | |
| make install DESTDIR=package PREFIX=/usr | |
| dpkg-deb --build package zdk_latest_all.deb | |
| - name: Upload .deb | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: zdk-debian-package | |
| path: zdk_latest_all.deb |