Skip to content

Remove debug logs in pyrefly lint handler. Don't get file content fro… #174

Remove debug logs in pyrefly lint handler. Don't get file content fro…

Remove debug logs in pyrefly lint handler. Don't get file content fro… #174

Workflow file for this run

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
# split installation into 2 steps: first internal preset because it is not
# published as pypi package, so pip will fail to resolve it in dev_workspace
# group and only then other dependencies
python -m pip install -e ./finecode_dev_common_preset
python -m pip install --group="dev_workspace" -e . -e ./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