Skip to content

✨ Add render-markdown integration support #21

✨ Add render-markdown integration support

✨ Add render-markdown integration support #21

Workflow file for this run

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"