mirror of
https://oauth2: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@github.com/m1ngsama/chopsticks.git
synced 2026-05-10 19:10:59 +08:00
75 lines
2 KiB
YAML
75 lines
2 KiB
YAML
name: test
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
startup:
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install Vim
|
|
run: |
|
|
if [ "$(uname)" = "Darwin" ]; then
|
|
brew install vim
|
|
else
|
|
sudo apt-get update && sudo apt-get install -y vim
|
|
fi
|
|
|
|
- name: Install vim-plug
|
|
run: |
|
|
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
|
|
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
|
|
|
- name: Symlink config
|
|
run: |
|
|
ln -sf "$PWD" ~/.vim/chopsticks-src
|
|
ln -sf "$PWD/.vimrc" ~/.vimrc
|
|
mkdir -p ~/.vim/modules
|
|
cp modules/*.vim ~/.vim/modules/
|
|
|
|
- name: Install plugins
|
|
run: |
|
|
set +e
|
|
vim -i NONE -es -u .vimrc -N -c 'PlugInstall --sync' -c 'qa!' 2>&1
|
|
plug_status=$?
|
|
set -e
|
|
if [ "$plug_status" -ne 0 ]; then
|
|
echo "PlugInstall exited with $plug_status; validating plugin directories"
|
|
fi
|
|
for plugin in fzf fzf.vim vim-fugitive vim-gitgutter ale vim-lsp vim-lsp-settings asyncomplete.vim asyncomplete-lsp.vim vim-markdown; do
|
|
test -d "$HOME/.vim/plugged/$plugin" || {
|
|
echo "FAIL: missing plugin $plugin"
|
|
exit 1
|
|
}
|
|
done
|
|
|
|
- name: Run Vim smoke tests
|
|
run: scripts/test.sh vim
|
|
|
|
shellcheck:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Check test runner CLI
|
|
run: |
|
|
scripts/test.sh --help
|
|
scripts/test.sh list
|
|
- name: Run shell and installer tests
|
|
run: scripts/test.sh shell installer bootstrap
|
|
|
|
docs:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install markdownlint
|
|
run: npm install -g markdownlint-cli
|
|
- name: Lint Markdown
|
|
run: scripts/test.sh docs
|