Clean ER readme #96
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@v4 | |
| - 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 | |
| python -m pip install --group="dev_workspace" | |
| 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 |