Skip to content

Commit

Permalink
ci: add check workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
SergioRibera committed Sep 23, 2024
1 parent 433af5e commit ba366a9
Show file tree
Hide file tree
Showing 2 changed files with 157 additions and 1 deletion.
156 changes: 156 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
name: Check Template

on:
workflow_dispatch:
push:
branches: [ 'main' ]
paths-ignore:
- "**.md"

jobs:
theme-plugin:
name: Test Theme Plugin
runs-on: ubuntu-latest
env:
PROJECT_NAME: test-theme
steps:
- uses: actions/checkout@v4
- uses: cargo-generate/cargo-generate-action@latest
with:
name: ${{ env.PROJECT_NAME }}
arguments: |
--verbose
-d=license='all'
-d=description='Theme Test Description'
-d=plugin_name='Theme Test'
-d=plugin_id='test-theme'
-d=deploy_release=true
-d=plugin_type='Theme'
-d=theme_name='Theme Test'
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- run: |
mv $PROJECT_NAME ${{ runner.temp }}/
cd ${{ runner.temp }}/$PROJECT_NAME
# Validaciones para el plugin de tema
if [ ! -f "themes/test-theme.json" ]; then
echo "Theme JSON file not generated"
exit 1
fi
slash-command-plugin:
name: Test Slash Command Plugin
runs-on: ubuntu-latest
env:
PROJECT_NAME: test-slash
steps:
- uses: actions/checkout@v4
- uses: cargo-generate/cargo-generate-action@latest
with:
name: ${{ env.PROJECT_NAME }}
arguments: |
--verbose
-d=license='all'
-d=description='Test Slash Command'
-d=plugin_name='Slash Command Test'
-d=plugin_id='test-slash-command'
-d=deploy_release=true
-d=plugin_type='Slash Command'
-d=slash_command_name='test-slash'
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- run: |
mv $PROJECT_NAME ${{ runner.temp }}/
cd ${{ runner.temp }}/$PROJECT_NAME
# Validaciones para el plugin de slash command
if [ ! -f "src/test-slash.rs" ]; then
echo "Slash command file not generated"
exit 1
fi
cargo check
language-plugin-no-ts:
name: Test Lang Plugin without TreeSitter
runs-on: ubuntu-latest
env:
PROJECT_NAME: test-lang
steps:
- uses: actions/checkout@v4
- uses: cargo-generate/cargo-generate-action@latest
with:
name: ${{ env.PROJECT_NAME }}
arguments: |
--verbose
-d=license='all'
-d=description='Lang LSP Test'
-d=plugin_name='Language LSP Test Plugin'
-d=plugin_id='test-lang'
-d=deploy_release=true
-d=plugin_type='Language Server'
-d=lsp_name='test-lang-lsp'
-d=language_name='Lang'
-d=lsp_repo='RustLangES/test-lang-lsp-repo'
-d=use_tree_sitter=false
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- run: |
mv $PROJECT_NAME ${{ runner.temp }}/
cd ${{ runner.temp }}/$PROJECT_NAME
# Validaciones para el plugin de lenguaje sin TreeSitter
if [ ! -f "src/test-lang-lsp.rs" ]; then
echo "Language server file not generated"
exit 1
fi
if grep -q "tree_sitter" extension.toml; then
echo "Unexpected TreeSitter configuration found"
exit 1
fi
cargo check
language-plugin-ts:
name: Test Lang Plugin with TreeSitter
runs-on: ubuntu-latest
env:
PROJECT_NAME: test-lang-ts
steps:
- uses: actions/checkout@v4
- uses: cargo-generate/cargo-generate-action@latest
with:
name: ${{ env.PROJECT_NAME }}
arguments: |
--verbose
-d=license='all'
-d=description='Lang LSP Test with TS'
-d=plugin_name='Language LSP Test Plugin with TS'
-d=plugin_id='test-lang-ts'
-d=deploy_release=true
-d=plugin_type='Language Server'
-d=lsp_name='test-lang-lsp-ts'
-d=language_name='LangTs'
-d=lsp_repo='RustLangES/test-lang-lsp-repo'
-d=use_tree_sitter=true
-d=ts_repo='RustLangES/test-lang-ts-repo'
-d=ts_commit='433af5e21f3d2a1639a875c1b2df898c596c774e'
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- run: |
mv $PROJECT_NAME ${{ runner.temp }}/
cd ${{ runner.temp }}/$PROJECT_NAME
# Validaciones para el plugin de lenguaje con TreeSitter
if [ ! -f "src/test-lang-lsp-ts.rs" ]; then
echo "Language server file not generated"
exit 1
fi
if ! grep -q "tree_sitter" extension.toml; then
echo "TreeSitter configuration not found"
exit 1
fi
if ! grep -q "433af5e21f3d2a1639a875c1b2df898c596c774e" extension.toml; then
echo "TreeSitter commit hash not found in configuration"
exit 1
fi
cargo check
2 changes: 1 addition & 1 deletion cargo-generate.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ ignore = ["themes"]
[conditional.'plugin_type == "Slash Command"'.placeholders]
slash_command_name = { type = "string", prompt = "Enter the name of your slash command" }

[conditional.'plugin_type != "Slash Command"']
[conditional.'plugin_type == "Theme"']
ignore = ["src/{{slash_command_name}}.rs"]

# License files
Expand Down

0 comments on commit ba366a9

Please sign in to comment.