✨ Add render-markdown integration support #21
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: CI | |
| on: | |
| push: | |
| branches: [main, develop] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| # → Core linting using make lint | |
| lint: | |
| name: » Lint Code | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: → Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: → Install linting tools | |
| run: | | |
| set -e | |
| # Install selene (Lua linter) | |
| echo "» Installing selene..." | |
| SELENE_VERSION=$(curl -s https://api.github.com/repos/Kampfkarren/selene/releases/latest | grep '"tag_name"' | cut -d '"' -f 4) | |
| wget -qO selene.zip https://github.com/Kampfkarren/selene/releases/download/${SELENE_VERSION}/selene-${SELENE_VERSION}-linux.zip | |
| unzip -q selene.zip | |
| chmod +x ./selene | |
| sudo mv ./selene /usr/local/bin/ | |
| echo "√ selene $(selene --version) installed" | |
| # Install stylua (Lua formatter) | |
| echo "» Installing stylua..." | |
| wget -qO stylua.zip https://github.com/JohnnyMorganz/StyLua/releases/latest/download/stylua-linux-x86_64.zip | |
| unzip -q stylua.zip | |
| chmod +x ./stylua | |
| sudo mv ./stylua /usr/local/bin/ | |
| echo "√ stylua $(stylua --version) installed" | |
| # Install markdownlint | |
| echo "» Installing markdownlint..." | |
| sudo apt-get update -qq | |
| sudo apt-get install -y nodejs npm | |
| npm install -g markdownlint-cli --silent | |
| echo "√ markdownlint installed" | |
| - name: → Run make lint | |
| run: | | |
| echo "» Running comprehensive linting..." | |
| make lint | |
| # → Test theme on multiple Neovim versions | |
| test: | |
| name: » Test Theme | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| neovim_version: | |
| - stable | |
| - nightly | |
| steps: | |
| - name: → Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: → Install Neovim ${{ matrix.neovim_version }} | |
| uses: rhysd/action-setup-vim@v1 | |
| with: | |
| neovim: true | |
| version: ${{ matrix.neovim_version }} | |
| - name: → Install Lua | |
| run: | | |
| sudo apt-get update -qq | |
| sudo apt-get install -y lua5.4 | |
| echo "√ Lua $(lua -v) installed" | |
| - name: → Show Neovim version | |
| run: nvim --version | |
| - name: → Run unit tests | |
| run: | | |
| echo "» Running unit tests..." | |
| make test | |
| - name: → Verify theme loads | |
| run: | | |
| echo "» Verifying colorscheme loads..." | |
| nvim --headless -c "set rtp+=$(pwd)" -c "colorscheme silkcircuit" -c "qa" || exit 1 | |
| echo "√ Theme loads successfully" | |
| - name: → Run checkhealth | |
| run: | | |
| echo "» Running :checkhealth silkcircuit..." | |
| nvim --headless -c "set rtp+=$(pwd)" -c "colorscheme silkcircuit" -c "checkhealth silkcircuit" -c "qa" || true | |
| # → Validate documentation and links | |
| documentation: | |
| name: » Check Documentation | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: → Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: → Check for broken links | |
| uses: gaurav-nelson/github-action-markdown-link-check@v1 | |
| continue-on-error: true | |
| id: link-check | |
| with: | |
| use-verbose-mode: "yes" | |
| config-file: ".github/markdown-link-check.json" | |
| - name: → Report link check results | |
| if: steps.link-check.outcome == 'failure' | |
| run: | | |
| echo "! Broken links found in markdown files" | |
| echo "! Please review the link check output above" | |
| # → Build and validate theme | |
| build: | |
| name: » Build Theme | |
| runs-on: ubuntu-latest | |
| needs: [lint, test] | |
| steps: | |
| - name: → Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: → Install Neovim | |
| uses: rhysd/action-setup-vim@v1 | |
| with: | |
| neovim: true | |
| version: stable | |
| - name: → Compile theme | |
| run: | | |
| echo "» Compiling theme for performance..." | |
| nvim --headless -c "set rtp+=$(pwd)" \ | |
| -c "lua require('silkcircuit').setup()" \ | |
| -c "lua require('silkcircuit').compile()" \ | |
| -c "qa" | |
| echo "√ Theme compiled successfully" | |
| - name: → Validate WCAG contrast | |
| run: | | |
| echo "» Checking WCAG contrast compliance..." | |
| nvim --headless -c "set rtp+=$(pwd)" \ | |
| -c "colorscheme silkcircuit" \ | |
| -c "SilkCircuitContrast" \ | |
| -c "qa" | |
| - name: → Generate integration report | |
| run: | | |
| echo "» Generating integration support report..." | |
| nvim --headless -c "set rtp+=$(pwd)" \ | |
| -c "colorscheme silkcircuit" \ | |
| -c "SilkCircuitIntegrations" \ | |
| -c "qa" || true | |
| - name: → Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: silkcircuit-build | |
| path: | | |
| extras/ | |
| doc/ | |
| # → Success notification | |
| success: | |
| name: √ All Checks Passed | |
| runs-on: ubuntu-latest | |
| needs: [lint, test, documentation, build] | |
| steps: | |
| - name: → Success | |
| run: | | |
| echo "√ All CI checks passed successfully!" | |
| echo "→ Ready to merge" |