diff --git a/CHANGELOG.md b/CHANGELOG.md index 81db7d77..b825c4bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +### `2.1.9` + +- []()Remove token restriction as it is changed server-side + +### `2.1.8` + +- [#285](https://github.com/codecov/codecov-python/pull/285)Add support for CODECOV_FLAGS +- [#276](https://github.com/codecov/codecov-python/pull/276)Add ability to specify number of upload retries + ### `2.1.7` - [#279](https://github.com/codecov/codecov-python/pull/279) Fix pinned coverage version diff --git a/README.md b/README.md index 9d3a8451..600b86e3 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ -Codecov Global Python Uploader ![PyPI](https://img.shields.io/pypi/v/codecov) [![codecov.io](https://codecov.io/github/codecov/codecov-python/coverage.svg?branch=master)](https://codecov.io/github/codecov/codecov-python) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +Codecov Global Python Uploader +[![codecov.io](https://codecov.io/github/codecov/codecov-python/coverage.svg?branch=master)](https://codecov.io/github/codecov/codecov-python) +![PyPI](https://img.shields.io/pypi/v/codecov) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ======= -| [https://codecov.io/][1] | [@codecov][2] | [hello@codecov.io][3] | -| ------------------------ | ------------- | --------------------- | +| [Support][1] | [Documentation][2] | [Community Boards][3] | [Twitter][4] | +| ------------ | ------------------ | --------------------- | ------------ | Find coverage reports for all the [languages below](#languages), gather them and submit them to Codecov. @@ -75,34 +78,35 @@ after_success: ## CI Providers | Company | Supported | Token Required | -| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | -| [Travis CI](https://travis-ci.org/) | Yes [![Build Status](https://secure.travis-ci.org/codecov/codecov-python.svg?branch=master)](https://travis-ci.org/codecov/codecov-python) | Private only | -| [CircleCI](https://circleci.com/) | Yes | Private only | -| [Codeship](https://codeship.com/) | Yes | Public & Private | -| [Jenkins](https://jenkins-ci.org/) | Yes | Public & Private | -| [Semaphore](https://semaphoreci.com/) | Yes | Public & Private | -| [Drone.io](https://drone.io/) | Yes | Public & Private | -| [AppVeyor](https://www.appveyor.com/) | Yes [![Build status](https://ci.appveyor.com/api/projects/status/sw18lsj7786bw806/branch/master?svg=true)](https://ci.appveyor.com/project/stevepeak/codecov-python/branch/master) | Private only | -| [Wercker](http://wercker.com/) | Yes | Public & Private | -| [Magnum CI](https://magnum-ci.com/) | Yes | Public & Private | -| [Shippable](https://www.shippable.com/) | Yes | Public & Private | -| [Gitlab CI](https://about.gitlab.com/gitlab-ci/) | Yes | Public & Private | -| Git / Mercurial | Yes (as a fallback) | Public & Private | -| [Buildbot](https://buildbot.net/) | `coming soon` [buildbot/buildbot#1671](https://github.com/buildbot/buildbot/pull/1671) | | -| [Bamboo](https://www.atlassian.com/software/bamboo) | `coming soon` | | -| [Solano Labs](https://www.solanolabs.com/) | `coming soon` | | +| ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | +| [AppVeyor](https://www.appveyor.com/) | Yes [![Build status](https://ci.appveyor.com/api/projects/status/sw18lsj7786bw806/branch/master?svg=true)](https://ci.appveyor.com/project/stevepeak/codecov-python/branch/master) | Private only | +| [Bamboo](https://www.atlassian.com/software/bamboo) | `coming soon` | | +| [Buildbot](https://buildbot.net/) | `coming soon` [buildbot/buildbot#1671](https://github.com/buildbot/buildbot/pull/1671) | | +| [CircleCI](https://circleci.com/) | Yes | Private only | +| [Codeship](https://codeship.com/) | Yes | Public & Private | +| [Drone.io](https://drone.io/) | Yes | Public & Private | +| [GitHub Actions](https://github.com/features/actions) | Yes [![Build status](https://github.com/codecov/codecov-python/workflows/Python%20package/badge.svg?branch=master)](https://github.com/codecov/codecov-python/actions?query=workflow%3A%22Python+package%22) | Public & Private | +| [Gitlab CI](https://about.gitlab.com/gitlab-ci/) | Yes | Public & Private | +| [Jenkins](https://jenkins-ci.org/) | Yes | Public & Private | +| [Magnum CI](https://magnum-ci.com/) | Yes | Public & Private | +| [Semaphore](https://semaphoreci.com/) | Yes | Public & Private | +| [Shippable](https://www.shippable.com/) | Yes | Public & Private | +| [Solano Labs](https://www.solanolabs.com/) | `coming soon` | | +| [Travis CI](https://travis-ci.org/) | Yes [![Build Status](https://secure.travis-ci.org/codecov/codecov-python.svg?branch=master)](https://travis-ci.org/codecov/codecov-python) | Private only | +| [Wercker](http://wercker.com/) | Yes | Public & Private | +| Git / Mercurial | Yes (as a fallback) | Public & Private | ## Troubleshooting -If you're seeing an **HTTP 400 error when uploading reports to S3**, make sure you've updated to at least version 2.1.3. +If you're seeing an **HTTP 400 error when uploading reports to S3**, make sure you've updated to at least version 2.1.3. -[1]: https://codecov.io/ -[2]: https://twitter.com/codecov -[3]: mailto:hello@codecov.io +[1]: https://codecov.io/support/ +[2]: https://community.codecov.io/ +[3]: https://twitter.com/codecov ## Copyright -> Copyright 2014-2019 codecov +> Copyright 2014-2020 codecov diff --git a/codecov/__init__.py b/codecov/__init__.py index 3308d1b9..e9645540 100644 --- a/codecov/__init__.py +++ b/codecov/__init__.py @@ -331,7 +331,7 @@ def main(*argv, **kwargs): "--flags", "-F", nargs="*", - default=None, + default=os.getenv("CODECOV_FLAGS"), help="Flag these uploaded files with custom labels", ) basics.add_argument( @@ -407,6 +407,12 @@ def main(*argv, **kwargs): help="Specify a custom pr number, provided automatically for supported CI companies", ) advanced.add_argument("--tag", default=None, help="Git tag") + advanced.add_argument( + "--tries", + default=3, + type=int, + help="Specify the total number of attempts to make when uploading coverage report", + ) enterprise = parser.add_argument_group( "======================== Enterprise ========================" @@ -947,8 +953,6 @@ def main(*argv, **kwargs): if _slug: query["slug"] = _slug.groups()[1] - assert query.get("job") or query.get("token"), "Missing repository upload token" - # Processing gcov # --------------- if "gcov" in codecov.disable: @@ -1108,6 +1112,7 @@ def main(*argv, **kwargs): res = retry_upload( "%s/upload/v4?%s" % (codecov.url, urlargs), requests.post, + retries=codecov.tries, break_codes=(200, 400, 406), verify=codecov.cacert, headers={ @@ -1128,6 +1133,7 @@ def main(*argv, **kwargs): s3 = retry_upload( upload_url, requests.put, + retries=codecov.tries, verify=codecov.cacert, data=reports_gzip, headers={ @@ -1149,6 +1155,7 @@ def main(*argv, **kwargs): res = retry_upload( "%s/upload/v2?%s" % (codecov.url, urlargs), requests.post, + retries=codecov.tries, verify=codecov.cacert, data=reports_gzip, headers={ @@ -1180,13 +1187,6 @@ def main(*argv, **kwargs): "Tip: See all example repositories: https://github.com/codecov?query=example" ) - write("Support channels:", "green") - write( - " Email: hello@codecov.io\n" - " IRC: #codecov\n" - " Gitter: https://gitter.im/codecov/support\n" - " Twitter: @codecov\n" - ) sys.exit(1 if codecov.required else 0) else: diff --git a/codecov/__version__.py b/codecov/__version__.py index 2661eb1e..26010cbb 100644 --- a/codecov/__version__.py +++ b/codecov/__version__.py @@ -5,4 +5,4 @@ __license__ = "Apache 2.0" __title__ = "codecov" __url__ = "https://github.com/codecov/codecov-python" -__version__ = "2.1.7" +__version__ = "2.1.9" diff --git a/tests/test.py b/tests/test.py index de4af8e8..39ca23a9 100644 --- a/tests/test.py +++ b/tests/test.py @@ -294,18 +294,6 @@ def test_send_error(self): else: raise Exception("400 never raised") - @data((dict(commit="sha"), "Missing repository upload token"),) - def test_require_branch(self, dd): - (kwargs, reason) = dd - # this is so we dont get branch for local git - self.set_env(JENKINS_URL="hello") - try: - self.run_cli(**kwargs) - except AssertionError as e: - self.assertEqual(str(e), reason) - else: - raise Exception("Did not raise AssertionError") - @unittest.skipIf( os.getenv("CI") == "True" and os.getenv("APPVEYOR") == "True", "Skip AppVeyor CI test",