feat(scripts): ci script to run quickly
This commit is contained in:
parent
339171fe27
commit
08050af5db
1 changed files with 65 additions and 0 deletions
65
scripts/ci.sh
Executable file
65
scripts/ci.sh
Executable file
|
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[0;33m'
|
||||||
|
BOLD='\033[1m'
|
||||||
|
RESET='\033[0m'
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||||
|
cd "$ROOT_DIR"
|
||||||
|
|
||||||
|
tmpdir=$(mktemp -d)
|
||||||
|
trap 'rm -rf "$tmpdir"' EXIT
|
||||||
|
|
||||||
|
run_job() {
|
||||||
|
local name=$1
|
||||||
|
shift
|
||||||
|
local log="$tmpdir/$name.log"
|
||||||
|
if "$@" >"$log" 2>&1; then
|
||||||
|
echo -e "${GREEN}✓${RESET} $name"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo -e "${RED}✗${RESET} $name"
|
||||||
|
cat "$log"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo -e "${BOLD}Running CI jobs in parallel...${RESET}"
|
||||||
|
echo
|
||||||
|
|
||||||
|
pids=()
|
||||||
|
jobs_names=()
|
||||||
|
|
||||||
|
run_job "stylua" stylua --check . &
|
||||||
|
pids+=($!); jobs_names+=("stylua")
|
||||||
|
|
||||||
|
run_job "selene" selene --display-style quiet . &
|
||||||
|
pids+=($!); jobs_names+=("selene")
|
||||||
|
|
||||||
|
run_job "prettier" prettier --check . &
|
||||||
|
pids+=($!); jobs_names+=("prettier")
|
||||||
|
|
||||||
|
run_job "busted" env \
|
||||||
|
LUA_PATH="/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua;/usr/lib/lua/5.1/?.lua;/usr/lib/lua/5.1/?/init.lua;;" \
|
||||||
|
LUA_CPATH="/usr/lib/lua/5.1/?.so;;" \
|
||||||
|
nvim -l /usr/lib/luarocks/rocks-5.1/busted/2.3.0-1/bin/busted --verbose spec/ &
|
||||||
|
pids+=($!); jobs_names+=("busted")
|
||||||
|
|
||||||
|
failed=0
|
||||||
|
for i in "${!pids[@]}"; do
|
||||||
|
if ! wait "${pids[$i]}"; then
|
||||||
|
failed=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo
|
||||||
|
if [ "$failed" -eq 0 ]; then
|
||||||
|
echo -e "${GREEN}${BOLD}All jobs passed.${RESET}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}${BOLD}Some jobs failed.${RESET}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
Loading…
Add table
Add a link
Reference in a new issue