Move presets in dev_workspace from dev_no_runtime to simplify finecode usage #149
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: CI | |
| on: | |
| merge_group: | |
| push: | |
| pull_request: | |
| defaults: | |
| run: | |
| shell: bash | |
| env: | |
| # python version for dev workspace | |
| DEV_WORKSPACE_PYTHON_VERSION: '3.13' | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 1 | |
| matrix: | |
| os: [ubuntu-24.04, macos-13, windows-2022] | |
| include: | |
| - os: ubuntu-24.04 | |
| name: Linux | |
| - os: macos-13 | |
| name: macOS | |
| - os: windows-2022 | |
| name: Windows | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| # setuptools-scm uses tags to get the current version, fetch history and tags | |
| # to get correct version | |
| fetch-depth: 0 | |
| fetch-tags: 'true' | |
| - name: Set up Python ${{ env.DEV_WORKSPACE_PYTHON_VERSION }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ env.DEV_WORKSPACE_PYTHON_VERSION }} | |
| - name: Install dependencies | |
| run: | | |
| python -m venv .venvs/dev_workspace | |
| source .venvs/dev_workspace/bin/activate | |
| python -m pip install --upgrade pip==25.1.1 | |
| # finecode_dev_common_preset must be installed as editable, because all | |
| # relative pathes in it requires this | |
| python -m pip install --group="dev_workspace" -e ./finecode_dev_common_preset file://$PWD file://$PWD/finecode_extension_runner | |
| python -m finecode prepare-envs | |
| shell: bash | |
| # TODO: install all other supported python versions. Version can be extracted from finecode | |
| # - name: Lint | |
| # run: | | |
| # poetry run python -m finecode run lint | |
| # shell: bash | |
| - name: Build all packages | |
| if: runner.os == 'Linux' | |
| run: | | |
| source .venvs/dev_workspace/bin/activate | |
| python -m finecode run build | |
| shell: bash | |
| - name: Collect all distribution packages | |
| if: runner.os == 'Linux' | |
| run: | | |
| # TODO: finecode action to copy only updated packages in dist | |
| mkdir -p dist | |
| cp finecode_extension_api/dist/* dist/ | |
| cp extensions/fine_python_ast/dist/* dist/ | |
| cp extensions/fine_python_black/dist/* dist/ | |
| cp extensions/fine_python_flake8/dist/* dist/ | |
| cp extensions/fine_python_isort/dist/* dist/ | |
| cp extensions/fine_python_module_exports/dist/* dist/ | |
| cp extensions/fine_python_mypy/dist/* dist/ | |
| cp presets/fine_python_format/dist/* dist/ | |
| cp presets/fine_python_lint/dist/* dist/ | |
| cp presets/fine_python_recommended/dist/* dist/ | |
| shell: bash | |
| - name: Store the distribution packages | |
| uses: actions/upload-artifact@v4 | |
| if: runner.os == 'Linux' | |
| with: | |
| name: python-package-distributions | |
| path: dist/ | |
| # - name: Run unit tests | |
| # if: ${{ !cancelled() }} | |
| # run: | | |
| # poetry run python -m pytest tests/ | |
| # shell: bash | |
| publish-to-pypi: | |
| name: >- | |
| Publish Python 🐍 distribution 📦 to PyPI | |
| if: startsWith(github.ref, 'refs/tags/') | |
| needs: | |
| - build | |
| runs-on: ubuntu-24.04 | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/p/finecode | |
| permissions: | |
| id-token: write # IMPORTANT: mandatory for trusted publishing | |
| steps: | |
| - name: Download all the dists | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: python-package-distributions | |
| path: dist/ | |
| - name: Publish distribution 📦 to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| # temporary skip existing packages, because not always all packages at once | |
| # are updated. | |
| # TODO: implement publishing only of changed in finecode | |
| skip-existing: true | |
| publish-to-testpypi: | |
| name: Publish Python 🐍 distribution 📦 to TestPyPI | |
| needs: | |
| - build | |
| runs-on: ubuntu-24.04 | |
| environment: | |
| name: testpypi | |
| url: https://test.pypi.org/p/finecode | |
| permissions: | |
| id-token: write # IMPORTANT: mandatory for trusted publishing | |
| steps: | |
| - name: Download all the dists | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: python-package-distributions | |
| path: dist/ | |
| - name: Publish distribution 📦 to TestPyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| repository-url: https://test.pypi.org/legacy/ | |
| verbose: true | |
| # temporary skip existing packages, because not always all packages at once | |
| # are updated. | |
| # TODO: implement publishing only of changed in finecode | |
| skip-existing: true |