| # fetchartifact |
| |
| This is a Python interface to http://go/fetchartifact, which is used for |
| fetching artifacts from http://go/ab. |
| |
| ## Usage |
| |
| ```python |
| from fetchartifact import fetchartifact |
| |
| |
| async def main() -> None: |
| artifacts = await fetch_artifact( |
| branch="aosp-master-ndk", |
| target="linux", |
| build="1234", |
| pattern="android-ndk-*.zip", |
| ) |
| for artifact in artifacts: |
| print(f"Downloaded {artifact}") |
| ``` |
| |
| ## Development |
| |
| For first time set-up, install https://python-poetry.org/, then run |
| `poetry install` to install the project's dependencies. |
| |
| This project uses mypy and pylint for linting, black and isort for |
| auto-formatting, and pytest for testing. All of these tools will be installed |
| automatically, but you may want to configure editor integration for them. |
| |
| To run any of the tools poetry installed, you can either prefix all your |
| commands with `poetry run` (as in `poetry run pytest`), or you can run |
| `poetry shell` to enter a shell with all the tools on the `PATH`. The following |
| instructions assume you've run `poetry shell` first. |
| |
| To run the linters: |
| |
| ```bash |
| mypy fetchartifact tests |
| pylint fetchartifact tests |
| ``` |
| |
| To auto-format the code (though I recommend configuring your editor to do this |
| on save): |
| |
| ```bash |
| isort . |
| black . |
| ``` |
| |
| To run the tests and generate coverage: |
| |
| ```bash |
| pytest --cov=fetchartifact |
| ``` |
| |
| Optionally, pass `--cov-report=html` to generate an HTML report, or |
| `--cov-report=xml` to generate an XML report for your editor. |
| |
| Some tests require network access. If you need to run the tests in an |
| environment that cannot access the Android build servers, add |
| `-m "not requires_network"` to skip those tests. Only a mock service can be |
| tested without network access. |