Extension CI
.github/workflows/client-ci.yml (opens in new tab)Triggers
pull_request workflow_dispatch
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| build | ${{ matrix.os }} | 6 | actions/checkout@v6 actions/setup-python@v6 actions/setup-node@v6 |
Raw YAML
name: Extension CI
on:
pull_request:
branches: [main]
workflow_dispatch:
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ["3.10", "3.11", "3.12", "3.13"]
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: client
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Python for local environment
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install Node.js
uses: actions/setup-node@v6
with:
node-version: 20
- run: npm install
- name: Run integration tests
run: xvfb-run -a npm run test:e2e
if: runner.os == 'Linux'
- name: Run integration tests
run: npm run test:e2e
if: runner.os != 'Linux'
Last fetched:
Publish Release
.github/workflows/release.yml (opens in new tab)Triggers
push
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| Publish Release | ubuntu-latest | 11 | actions/checkout@v6 actions/setup-node@v6 HaaLeo/publish-vscode-extension@v2 actions/setup-python@v6 softprops/action-gh-release@v2 HaaLeo/publish-vscode-extension@v2 HaaLeo/publish-vscode-extension@v2 |
Raw YAML
# Creates a release from a tag with the name "v[mayor].[minor].[patch]" and then publishes the language server to PyPI
# and the extension to Open-VSX and VSCode Marketplace.
name: Publish Release
on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"
jobs:
release:
name: Publish Release
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
# --- Prepare and Package Client ---
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 20
- name: Install client dependencies
working-directory: ./client
run: npm i
- name: Package VS Code Extension
id: packageExtension
uses: HaaLeo/publish-vscode-extension@v2
with:
pat: stub
packagePath: "./client/"
dryRun: true
# --- Prepare and Package Server ---
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: 3.11
- name: Install Python packaging tools
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine build
working-directory: server
- name: Package Python Server
run: python -m build --sdist --wheel
working-directory: server
# --- Create GitHub Release ---
- name: Create Draft Release
id: create_release
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
name: Release ${{ github.ref }}
body: |
This release contains:
- [Galaxy Language Server](https://github.com/davelopez/galaxy-language-server/tree/main/server)
- [Galaxy Tools VS Code Extension](https://github.com/davelopez/galaxy-language-server/tree/main/client)
Changelog links:
- [Galaxy Language Server](https://github.com/davelopez/galaxy-language-server/blob/main/server/CHANGELOG.md)
- [Galaxy Tools Extension](https://github.com/davelopez/galaxy-language-server/blob/main/client/CHANGELOG.md#)
The standalone language server is available on [PyPI](https://pypi.org/project/galaxy-language-server/).
The VS Code extension is available on [Open VSX](https://open-vsx.org/extension/davelopez/galaxy-tools) and [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=davelopez.galaxy-tools).
draft: true
prerelease: false
generate_release_notes: true
files: |
server/dist/*
${{ steps.packageExtension.outputs.vsixPath }}
# --- Publish Python Package to PyPI ---
- name: Upload Python package to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: twine upload --skip-existing dist/*
working-directory: server
# --- Publish VS Code Extension ---
- name: Publish to Visual Studio Marketplace
uses: HaaLeo/publish-vscode-extension@v2
with:
pat: ${{ secrets.VS_MARKETPLACE_TOKEN }}
registryUrl: https://marketplace.visualstudio.com
extensionFile: ${{ steps.packageExtension.outputs.vsixPath }}
- name: Publish to Open VSX Registry
uses: HaaLeo/publish-vscode-extension@v2
with:
pat: ${{ secrets.OPEN_VSX_TOKEN }}
extensionFile: ${{ steps.packageExtension.outputs.vsixPath }}
Last fetched:
Language Server CI
.github/workflows/server-ci.yml (opens in new tab)Triggers
pull_request workflow_dispatch
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| build | ubuntu-latest | 6 | actions/checkout@v6 actions/setup-python@v6 chartboost/ruff-action@v1 |
Raw YAML
# Run linting and tests for the Language Server
name: Language Server CI
on:
pull_request:
branches: [main]
paths:
- "server/**"
workflow_dispatch:
jobs:
build:
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]
runs-on: ubuntu-latest
defaults:
run:
working-directory: server
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Lint with ruff
uses: chartboost/ruff-action@v1
- name: Check mypy
run: |
mypy .
- name: Test with pytest
run: |
pytest .
Last fetched: