v3.6.0 #170
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test package | |
| on: | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - 'v*' | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| prepare: | |
| name: Download LuaLs | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout source | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.12" | |
| - name: Update pip | |
| run: python -m pip install --upgrade pip | |
| - name: Install dependencies | |
| run: python -m pip install '.' | |
| - name: Download LuaLs for Linux | |
| run: python sphinx_lua_ls/lua_ls.py linux x86_64 --runtime luals ~/lua_ls_release/ubuntu-latest | |
| - name: Download LuaLs for Windows | |
| run: python sphinx_lua_ls/lua_ls.py win32 amd64 --runtime luals ~/lua_ls_release/windows-latest | |
| - name: Download LuaLs for MacOs | |
| run: python sphinx_lua_ls/lua_ls.py darwin arm --runtime luals ~/lua_ls_release/macos-latest | |
| - name: Download EmmyLua for Linux | |
| run: python sphinx_lua_ls/lua_ls.py linux x86_64 --runtime emmylua ~/lua_ls_release/ubuntu-latest | |
| - name: Download EmmyLua for Windows | |
| run: python sphinx_lua_ls/lua_ls.py win32 amd64 --runtime emmylua ~/lua_ls_release/windows-latest | |
| - name: Download EmmyLua for MacOs | |
| run: python sphinx_lua_ls/lua_ls.py darwin arm --runtime emmylua ~/lua_ls_release/macos-latest | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: lua_ls_release | |
| path: ~/lua_ls_release | |
| include-hidden-files: true | |
| retention-days: 3 | |
| test: | |
| name: Test package | |
| needs: | |
| - prepare | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - macos-latest | |
| - windows-latest | |
| python-version: | |
| - "3.12" | |
| - "3.13" | |
| type: | |
| - test | |
| include: | |
| - os: ubuntu-latest | |
| python-version: "3.13" | |
| type: code style | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout source | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Update pip | |
| run: python -m pip install --upgrade pip | |
| # Tests | |
| - name: Install test dependencies | |
| if: ${{ matrix.type == 'test' }} | |
| run: python -m pip install . --group test | |
| - name: Download LuaLs | |
| if: ${{ matrix.type == 'test' }} | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: lua_ls_release | |
| path: ~/lua_ls_release | |
| - name: Check types | |
| if: ${{ matrix.type == 'test' }} | |
| run: pyright | |
| - name: Test package | |
| if: ${{ matrix.type == 'test' }} | |
| run: pytest -vv --showlocals --tb=short --color=yes --junit-xml=test-results.xml | |
| env: | |
| LUA_LS_CACHE_PATH: ~/lua_ls_release/${{ matrix.os }} | |
| # Lint | |
| - name: Install lint dependencies | |
| if: ${{ matrix.type == 'code style' }} | |
| run: python -m pip install . --group lint | |
| - name: Check code style | |
| if: ${{ matrix.type == 'code style' }} | |
| run: pre-commit run -a | |
| publish_to_pypi: | |
| name: Publish package to PyPi | |
| needs: | |
| - test | |
| if: ${{ github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') }} | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/p/sphinx-lua-ls | |
| permissions: | |
| contents: write | |
| id-token: write | |
| steps: | |
| - name: Checkout source | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Generate release metadata | |
| id: metadata | |
| run: | | |
| ref="${{ github.ref }}"; | |
| version=${ref#refs/tags/v}; | |
| link="https://pypi.org/p/sphinx-lua-ls/${version}"; | |
| echo "version=${version}" >> $GITHUB_OUTPUT | |
| echo "link=${link}" >> $GITHUB_OUTPUT | |
| - name: Parse Changelog | |
| id: changelog | |
| uses: mindsers/changelog-reader-action@v2 | |
| with: | |
| version: ${{ steps.metadata.outputs.version }} | |
| - name: Set up python 3.12 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: 3.12 | |
| - name: Install build | |
| run: | | |
| pip install build | |
| - name: Build project | |
| run: | | |
| python3 -m build . | |
| - name: Publish to pypi | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| attestations: false | |
| - name: Create GitHub release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| prerelease: ${{ steps.changelog.outputs.status == 'prereleased' }} | |
| draft: ${{ steps.changelog.outputs.status == 'unreleased' }} | |
| body: | | |
| ## Changelog | |
| ${{ steps.changelog.outputs.changes }} | |
| [See release on PyPi](${{ steps.metadata.outputs.link }}) |