#!/bin/sh -e # # SPDX-License-Identifier: AGPL-3.0-or-later # # PASST - Plug A Simple Socket Transport # for qemu/UNIX domain socket mode # # PASTA - Pack A Subtle Tap Abstraction # for network namespace/tap device mode # # hooks/pre-push - Run CI. On success, run demos, build, and copy all contents # # Copyright (c) 2021 Red Hat GmbH # Author: Stefano Brivio # # cp hooks/pre-push .git/hooks/pre-push USER_HOST="passt.top" BASE="/var/www/passt" BUILDS="${BASE}/builds" LATEST="${BUILDS}/latest" TEMP="${BUILDS}/temp" AWAY="${BUILDS}/away" WEB="${TEMP}/web" TEST="${TEMP}/test" ARCH="$(uname -m)" BIN="${TEMP}/${ARCH}" ssh "${USER_HOST}" "mkdir -p ${WEB} ${TEST} ${BIN}" cd test ./ci gzip -fk9 perf.js ci.js scp perf.js perf.js.gz ci.js ci.js.gz "${USER_HOST}:${WEB}/" scp test_logs/* "${USER_HOST}:${TEST}/" ./run_demo for cast in ci demo_pasta demo_podman demo_passt; do gzip -fk9 "${cast}.cast" scp "${cast}.cast" "${USER_HOST}:${WEB}/" scp "${cast}.cast.gz" "${USER_HOST}:${WEB}/" done cd .. make pkgs scp passt passt.avx2 passt.1 qrap qrap.1 "${USER_HOST}:${BIN}" scp pasta pasta.avx2 pasta.1 "${USER_HOST}:${BIN}" ssh "${USER_HOST}" "rm -f ${BIN}/*.deb" ssh "${USER_HOST}" "rm -f ${BIN}/*.rpm" scp *.deb *.rpm "${USER_HOST}:${BIN}/" man2html -M "/" passt.1 > passt.1.html scp passt.1.html "${USER_HOST}:${WEB}/" for pic in passt_overview pasta_overview; do cwebp -preset drawing -q 10 "doc/${pic}.png" -o "doc/${pic}.webp" scp "doc/${pic}.png" "doc/${pic}.png" "${USER_HOST}:${WEB}/" scp "doc/${pic}.webp" "doc/${pic}.webp" "${USER_HOST}:${WEB}/" done scp doc/*.html "${USER_HOST}:${WEB}/" ssh "${USER_HOST}" "mv ${LATEST} ${AWAY}" ssh "${USER_HOST}" "mv ${TEMP} ${LATEST}" ssh "${USER_HOST}" "rm -rf ${AWAY}"