Skip to content

Sync ZDK

Sync ZDK #303

Workflow file for this run

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