docs: initialize blueprint development structure #627
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Smoke Test CI | |
| on: | |
| push: | |
| branches: [ main ] # Or your default branch name | |
| pull_request: | |
| branches: [ main ] # Or your default branch name | |
| jobs: | |
| lint: | |
| name: Linters | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.x' | |
| - name: Setup Homebrew (Linux) | |
| uses: Homebrew/actions/setup-homebrew@master | |
| - name: Install Dependencies | |
| run: | | |
| brew install chezmoi | |
| pip install pre-commit | |
| - name: Run pre-commit | |
| run: pre-commit run --all-files | |
| - name: Run chezmoi verify | |
| run: chezmoi verify . | |
| build: | |
| name: Build (Ubuntu) | |
| runs-on: ubuntu-latest | |
| needs: [lint] # Run after linters pass | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Homebrew (Linux) | |
| uses: Homebrew/actions/setup-homebrew@master | |
| - name: Cache Homebrew | |
| uses: actions/cache@v4 | |
| with: | |
| path: /home/linuxbrew/.cache/Homebrew | |
| key: ${{ runner.os }}-brew-${{ hashFiles('**/Brewfile') }} | |
| restore-keys: | | |
| ${{ runner.os }}-brew- | |
| - name: Install Dependencies | |
| # Install chezmoi, mise, zsh, and any deps needed *before* chezmoi apply | |
| run: | | |
| brew install chezmoi neovim zsh | |
| - name: Setup mise | |
| uses: nick-fields/setup-mise@v0 | |
| - name: Cache mise tools | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.local/share/mise | |
| ~/.local/state/mise | |
| key: ${{ runner.os }}-mise-${{ hashFiles('**/.mise.toml', '**/mise.toml', '**/.config/mise/config.toml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-mise- | |
| - name: Run environment health checks | |
| run: | | |
| { | |
| echo "## 🏥 Environment Health Checks" | |
| echo "" | |
| # Homebrew doctor | |
| echo "### Homebrew Doctor" | |
| if brew doctor 2>&1 | tee brew-doctor.log; then | |
| echo "✅ Homebrew is healthy" | |
| else | |
| echo "⚠️ Homebrew has warnings (non-fatal)" | |
| echo "\`\`\`" | |
| cat brew-doctor.log | |
| echo "\`\`\`" | |
| fi | |
| echo "" | |
| # mise doctor | |
| echo "### mise Doctor" | |
| if mise doctor 2>&1 | tee mise-doctor.log; then | |
| echo "✅ mise is healthy" | |
| else | |
| echo "⚠️ mise has warnings" | |
| echo "\`\`\`" | |
| cat mise-doctor.log | |
| echo "\`\`\`" | |
| fi | |
| } >> "$GITHUB_STEP_SUMMARY" | |
| - name: Run chezmoi apply | |
| # Use -v for verbose output, useful for debugging CI failures | |
| run: chezmoi apply -v | |
| - name: Test zsh shell initialization | |
| run: | | |
| # Test that zsh shell loads and configuration works | |
| timeout 10s zsh -c " | |
| source ~/.zshrc | |
| # Check if zsh configuration loaded by testing for ZSH_VERSION | |
| if [[ -n \"\$ZSH_VERSION\" ]]; then | |
| echo \"✅ zsh configuration loaded successfully\" | |
| else | |
| echo \"❌ zsh configuration failed to load\" | |
| exit 1 | |
| fi | |
| # Test that prompt is configured (PS1 or PROMPT) | |
| if [[ -n \"\$PROMPT\" ]] || [[ -n \"\$PS1\" ]]; then | |
| echo \"✅ zsh prompt configured\" | |
| else | |
| echo \"❌ zsh prompt not configured\" | |
| exit 1 | |
| fi | |
| " |