GitHub Actions is configured for automated testing on multiple platforms:
The installation is tested on:
- macOS: macOS 14 (Sonoma) -
macos-14runner - Linux: Ubuntu 22.04 (via Docker) -
ubuntu-22.04runner
- Checkout: Clones repository with submodules
- Install: Moves workspace to
~/.yadrand runs./install.shwithCI=true - Smoke Tests: Runs
install-smoke-test.shwhich verifies:- Shell changed to zsh
- Essential packages installed (nvim, git, fzf)
- Checkout: Clones repository with submodules
- Build: Builds Docker image with
docker build --build-arg CI=true -t yadr . - Smoke Tests: Runs tests inside container with
install-smoke-test.sh
- Brewfile_ci: Minimal package list for faster CI builds (used when
CI=true) - install-smoke-test.sh: Basic smoke tests to verify successful installation
The CI workflow is defined in .github/workflows/ci.yml:
- Runs on push/PR to
mainbranch - Can be manually triggered via
workflow_dispatch - Tests on both macOS 14 and Ubuntu 22.04
- Uses
CI=truefor faster builds with minimal packages
You can simulate CI builds locally:
# Test with minimal Brewfile
CI=true ./install.sh
# Test with Docker (Linux)
docker build -t yadr-test .
docker run -it yadr-test
# Run smoke tests
./test/install-smoke-test.sh- Add shellcheck validation for all bash scripts
- Test on more OS versions
- Add integration tests for key features
- Test prezto module loading
- Verify neovim plugin installation