feat: dagrunner, initial version
This commit is contained in:
122 files changed
+23101
No files matched your search
Executable
+59
@@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
# Test GitHub Actions CI workflows locally using act with podman
|
||||
#
|
||||
# Usage:
|
||||
# ./scripts/test_ci.sh # Run ALL jobs (simulate GitHub CI)
|
||||
# ./scripts/test_ci.sh -j lint # Run only lint job
|
||||
# ./scripts/test_ci.sh -j examples # Run only examples job
|
||||
# ./scripts/test_ci.sh -n # Dry run all jobs
|
||||
# ./scripts/test_ci.sh -j lint -n # Dry run specific job
|
||||
|
||||
set -e
|
||||
|
||||
# Ensure podman socket is running
|
||||
if ! systemctl --user is-active podman.socket &>/dev/null; then
|
||||
echo "Starting podman socket..."
|
||||
systemctl --user start podman.socket
|
||||
fi
|
||||
|
||||
# Set up podman as docker replacement
|
||||
export DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock
|
||||
|
||||
# Path to act (adjust if needed)
|
||||
ACT=act
|
||||
|
||||
# Parse arguments
|
||||
DRY_RUN=""
|
||||
JOB_ARGS=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
-n | --dry-run)
|
||||
DRY_RUN="-n"
|
||||
shift
|
||||
;;
|
||||
-j)
|
||||
JOB_ARGS="-j $2"
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $1"
|
||||
echo "Usage: $0 [-j job_name] [-n|--dry-run]"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Run act (default: run all jobs, just like GitHub)
|
||||
echo "Running GitHub Actions locally with podman..."
|
||||
if [ -n "$JOB_ARGS" ]; then
|
||||
echo "Job: ${JOB_ARGS#-j }"
|
||||
fi
|
||||
if [ -n "$DRY_RUN" ]; then
|
||||
echo "Mode: Dry run"
|
||||
else
|
||||
echo "Mode: Full run (simulating GitHub CI)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
$ACT $JOB_ARGS $DRY_RUN
|
||||
Reference in new issue
Block a user