Skip to content
CI/CD Inventory

galaxyproject/galaxy-language-server (opens in new tab)

3 workflows

Triggers

pull_request workflow_dispatch

Jobs

Jobs for Extension CI
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:

Triggers

push

Jobs

Jobs for Publish Release
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:

Triggers

pull_request workflow_dispatch

Jobs

Jobs for Language Server CI
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: