diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0ff6bc0..01600df 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -200,3 +200,15 @@ jobs: exit 1 fi shell: bash + + test-malformed-pyproject-file-fallback: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install using malformed pyproject.toml + id: setup-uv + uses: ./ + with: + pyproject-file: "__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml" + - run: uv sync + working-directory: __tests__/fixtures/uv-project diff --git a/__tests__/fixtures/malformed-pyproject-toml-project/.python-version b/__tests__/fixtures/malformed-pyproject-toml-project/.python-version new file mode 100644 index 0000000..2c07333 --- /dev/null +++ b/__tests__/fixtures/malformed-pyproject-toml-project/.python-version @@ -0,0 +1 @@ +3.11 diff --git a/__tests__/fixtures/malformed-pyproject-toml-project/README.md b/__tests__/fixtures/malformed-pyproject-toml-project/README.md new file mode 100644 index 0000000..e69de29 diff --git a/__tests__/fixtures/malformed-pyproject-toml-project/hello.py b/__tests__/fixtures/malformed-pyproject-toml-project/hello.py new file mode 100644 index 0000000..7c792d6 --- /dev/null +++ b/__tests__/fixtures/malformed-pyproject-toml-project/hello.py @@ -0,0 +1,6 @@ +def main(): + print("Hello from malformed-pyproject-toml-project!") + + +if __name__ == "__main__": + main() diff --git a/__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml b/__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml new file mode 100644 index 0000000..41f990c --- /dev/null +++ b/__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml @@ -0,0 +1,9 @@ +[project] +name = "malformed-pyproject-toml-project" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.11" +dependencies = [] + +[malformed-toml diff --git a/dist/setup/index.js b/dist/setup/index.js index 64098a3..061a3e6 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -99655,7 +99655,15 @@ function getUvVersionFromConfigFile(filePath) { core.warning(`Could not find file: ${filePath}`); return undefined; } - let requiredVersion = getRequiredVersion(filePath); + let requiredVersion; + try { + requiredVersion = getRequiredVersion(filePath); + } + catch (err) { + const message = err.message; + core.warning(`Error while parsing ${filePath}: ${message}`); + return undefined; + } if (requiredVersion?.startsWith("==")) { requiredVersion = requiredVersion.slice(2); } diff --git a/src/utils/pyproject.ts b/src/utils/pyproject.ts index dca27e4..9b00302 100644 --- a/src/utils/pyproject.ts +++ b/src/utils/pyproject.ts @@ -9,7 +9,14 @@ export function getUvVersionFromConfigFile( core.warning(`Could not find file: ${filePath}`); return undefined; } - let requiredVersion = getRequiredVersion(filePath); + let requiredVersion: string | undefined; + try { + requiredVersion = getRequiredVersion(filePath); + } catch (err) { + const message = (err as Error).message; + core.warning(`Error while parsing ${filePath}: ${message}`); + return undefined; + } if (requiredVersion?.startsWith("==")) { requiredVersion = requiredVersion.slice(2);