You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
docuseal/bin/ci

32 lines
935 B

#!/bin/sh
# Run the full CI suite locally via Docker (mirrors GitHub Actions).
# Usage: bin/ci [service]
# bin/ci — run lint + brakeman + rspec
# bin/ci lint — run only linters
# bin/ci rspec — run only tests
# bin/ci brakeman — run only security scanner
set -e
SERVICE="${1:-}"
echo "Building CI image (cached)..."
docker compose -f docker-compose.ci.yml build --quiet
if [ -z "$SERVICE" ]; then
echo "━━━ Lint ━━━"
docker compose -f docker-compose.ci.yml run --rm --no-deps lint
echo ""
echo "━━━ Brakeman ━━━"
docker compose -f docker-compose.ci.yml run --rm --no-deps brakeman
echo ""
echo "━━━ RSpec ━━━"
docker compose -f docker-compose.ci.yml run --rm rspec
else
docker compose -f docker-compose.ci.yml run --rm "$SERVICE"
fi
docker compose -f docker-compose.ci.yml down --volumes --remove-orphans 2>/dev/null
echo ""
echo "✅ CI passed."