diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03aa794..1332d70 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,5 +42,11 @@ jobs: - name: Run tests run: uv run pytest + - name: Upload coverage to Coveralls + uses: coverallsapp/github-action@v2 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + path-to-lcov: ./coverage.lcov + - name: Test production dependencies run: ./scripts/test-production-install.sh diff --git a/.gitignore b/.gitignore index 6b7bd2e..f20eca4 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,7 @@ htmlcov/ .cache nosetests.xml coverage.xml +coverage.lcov *.cover *.py.cover .hypothesis/ diff --git a/README.md b/README.md index 829fdac..3f63e5e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,10 @@ # lazy-ecs +[![PyPI version](https://img.shields.io/pypi/v/lazy-ecs)](https://pypi.org/project/lazy-ecs/) +[![Python versions](https://img.shields.io/pypi/pyversions/lazy-ecs)](https://pypi.org/project/lazy-ecs/) +[![License](https://img.shields.io/pypi/l/lazy-ecs)](https://github.com/vertti/lazy-ecs/blob/main/LICENSE) +[![Coverage Status](https://coveralls.io/repos/github/vertti/lazy-ecs/badge.svg?branch=main)](https://coveralls.io/github/vertti/lazy-ecs?branch=main) + A CLI tool for navigating AWS ECS clusters interactively. ![lazy-ecs demo](images/lazy-ecs-demo.jpg) diff --git a/pyproject.toml b/pyproject.toml index d6d8194..d28c9be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,8 +38,8 @@ Documentation = "https://github.com/vertti/lazy-ecs#readme" [project.scripts] lazy-ecs = "lazy_ecs:main" -[tool.uv] -dev-dependencies = [ +[dependency-groups] +dev = [ "pytest==8.4.2", "pytest-cov==7.0.0", "pytest-mock==3.15.0", @@ -48,6 +48,7 @@ dev-dependencies = [ "pre-commit==4.3.0", "pyrefly==0.32.0", "boto3-stubs[ecs,logs,sts,cloudwatch]==1.40.30", + "coveralls>=4.0.1", ] [tool.ruff] @@ -143,6 +144,7 @@ addopts = [ "--cov=src/lazy_ecs", "--cov-report=term-missing", "--cov-report=html", + "--cov-report=lcov", ] [build-system] diff --git a/uv.lock b/uv.lock index e30da44..7f547d3 100644 --- a/uv.lock +++ b/uv.lock @@ -275,6 +275,20 @@ toml = [ { name = "tomli", marker = "python_full_version <= '3.11'" }, ] +[[package]] +name = "coveralls" +version = "4.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage", extra = ["toml"] }, + { name = "docopt" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/75/a454fb443eb6a053833f61603a432ffbd7dd6ae53a11159bacfadb9d6219/coveralls-4.0.1.tar.gz", hash = "sha256:7b2a0a2bcef94f295e3cf28dcc55ca40b71c77d1c2446b538e85f0f7bc21aa69", size = 12419, upload-time = "2024-05-15T12:56:14.297Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/e5/6708c75e2a4cfca929302d4d9b53b862c6dc65bd75e6933ea3d20016d41d/coveralls-4.0.1-py3-none-any.whl", hash = "sha256:7a6b1fa9848332c7b2221afb20f3df90272ac0167060f41b5fe90429b30b1809", size = 13599, upload-time = "2024-05-15T12:56:12.342Z" }, +] + [[package]] name = "cryptography" version = "45.0.7" @@ -325,6 +339,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload-time = "2025-07-17T16:51:58.613Z" }, ] +[[package]] +name = "docopt" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491", size = 25901, upload-time = "2014-06-16T11:18:57.406Z" } + [[package]] name = "filelock" version = "3.19.1" @@ -395,6 +415,7 @@ dependencies = [ [package.dev-dependencies] dev = [ { name = "boto3-stubs", extra = ["cloudwatch", "ecs", "logs", "sts"] }, + { name = "coveralls" }, { name = "moto" }, { name = "pre-commit" }, { name = "pyrefly" }, @@ -414,6 +435,7 @@ requires-dist = [ [package.metadata.requires-dev] dev = [ { name = "boto3-stubs", extras = ["ecs", "logs", "sts", "cloudwatch"], specifier = "==1.40.30" }, + { name = "coveralls", specifier = ">=4.0.1" }, { name = "moto", extras = ["ecs"], specifier = "==5.1.12" }, { name = "pre-commit", specifier = "==4.3.0" }, { name = "pyrefly", specifier = "==0.32.0" },