image: debian/oldstable packages: - curl - build-essential - libsdl2-dev - rsync - zip oauth: pages.sr.ht/PAGES:RW environment: SITE: rabbits.srht.site/uxn SSH_HOST_KEYS: | [w1.uxn-build.ald.nu]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP+IYCB4JrKklFjWSMRkPBTqUjBqUuhlDQy6/X3l8xj5 [m1.uxn-build.ald.nu]:2223 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDvWVqlHh3XQ5ziEbT55K896/mW2BVDdkU6hWgIfU9md [p1.uxn-build.ald.nu]:2224 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAgduGa60Tx3PsnEaJDyUzmPmpzGYmDeLFtLcVoU5tJs secrets: - 138ad607-a4ec-4d74-88a1-8f3be2ba2d03 sources: - https://git.sr.ht/~rabbits/uxn tasks: - prepare: | rm -f out mkdir -p out umask 077 mkdir -p ~/.ssh printf '%s\n' "${SSH_HOST_KEYS}" > ~/.ssh/known_hosts printf 'User build\nStrictHostKeyChecking yes\nCheckHostIP no\nHost win\nHostName w1.uxn-build.ald.nu\nPort 2222\nHost mac\nHostName m1.uxn-build.ald.nu\nPort 2223\nHost 9front\nHostName p1.uxn-build.ald.nu\nPort 2224\n' > ~/.ssh/config - build-linux: | cd uxn ./build.sh --no-run mv bin uxn tar -czf ../out/uxn-linux-amd64.tar.gz uxn cd .. - build-rompack: | mkdir -p rompack/uxn for F in uxn/projects/software/calc.tal uxn/projects/software/launcher.tal uxn/projects/examples/demos/piano.tal uxn/projects/examples/demos/clock.tal catclock/src/main.tal dexe/src/main.tal donsol/src/main.tal left/src/main.tal nasu/src/main.tal noodle/src/main.tal orca-toy/src/main.tal:orca.rom turye/src/main.tal; do PROJECT="${F%%/*}" if [ "${F}" = "${F%:*}" ]; then ROMNAME="${F##*/}" ROMNAME="${ROMNAME%.tal}.rom" [ "${ROMNAME}" != main.rom ] || ROMNAME="${PROJECT}.rom" else ROMNAME="${F##*:}" F="${F%:*}" fi [ -d "${PROJECT}" ] || git clone "https://git.sr.ht/~rabbits/${PROJECT}" ( cd "${PROJECT}" && ../uxn/uxn/uxnasm "${F#*/}" "../rompack/uxn/${ROMNAME}" || rm -f "../rompack/uxn/${ROMNAME}" ) done tar -czf out/uxn-rompack.tar.gz -C rompack uxn ( cd rompack && zip -qr ../out/uxn-rompack.zip uxn ) [ -e ~/.ssh/id_rsa ] || complete-build - build-windows: | ssh win "rm -f uxn-windows-64bit.zip; export PATH=\"\${PATH}:/mingw64/bin\"; set -ex; cd uxn; git fetch; git checkout .; git clean -xfd; git checkout $(cd uxn && git rev-parse HEAD); MSYSTEM=MSYS ./build.sh --no-run; mv bin uxn; zip -qr ../uxn-windows-64bit.zip uxn" rsync win:uxn-windows-64bit.zip out/ - build-macos: | ssh mac "rm -f uxn-macos.tar.gz; export PATH=\"\${PATH}:/usr/local/bin\"; set -ex; cd uxn; git fetch; git checkout .; git clean -xfd; git checkout $(cd uxn && git rev-parse HEAD); ./build.sh --no-run; mv bin uxn; tar -zcf ../uxn-macos.tar.gz uxn" rsync mac:uxn-macos.tar.gz out/ - upload: | if [ "$(cd uxn && git rev-parse HEAD)" != "$(cd uxn && git rev-parse origin/main)" ]; then exit; fi ls -l out tar -czf out.tar.gz -C out . acurl() { set +x curl -H "Authorization: Bearer ${OAUTH2_TOKEN}" "${@}" set -x } acurl -fsS "https://pages.sr.ht/publish/${SITE}" -Fcontent=@out.tar.gz acurl -fsS "https://pages.sr.ht/publish/${SITE}" -Fcontent=@out.tar.gz -Fprotocol=GEMINI - build-9front: | ssh 9front "$(cd uxn && git rev-parse HEAD)"