Skip to content
This repository was archived by the owner on Apr 20, 2023. It is now read-only.

Commit 48a5613

Browse files
authored
Added GitHub Actions CI detection. (#265)
1 parent 39100a2 commit 48a5613

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

codecov/__init__.py

+27
Original file line numberDiff line numberDiff line change
@@ -790,6 +790,33 @@ def main(*argv, **kwargs):
790790

791791
write(" Gitlab CI Detected")
792792

793+
# --------------
794+
# GitHub Actions
795+
# --------------
796+
elif os.getenv("GITHUB_ACTION"):
797+
# https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables
798+
query.update(
799+
dict(
800+
service="github",
801+
build=os.getenv("GITHUB_RUN_ID"),
802+
commit=os.getenv("GITHUB_SHA"),
803+
slug=os.getenv("GITHUB_REPOSITORY"),
804+
build_url="http://github.com/"
805+
+ os.getenv("GITHUB_REPOSITORY")
806+
+ "/actions/runs/"
807+
+ os.getenv("GITHUB_RUN_ID"),
808+
)
809+
)
810+
811+
if os.getenv("GITHUB_REF"):
812+
query["branch"] = os.getenv("GITHUB_REF").split("/", 3)[-1]
813+
if os.getenv("GITHUB_HEAD_REF"):
814+
# PR refs are in the format: refs/pull/7/merge
815+
query["pr"] = os.getenv("GITHUB_REF").split("/")[-2]
816+
query["branch"] = os.getenv("GITHUB_HEAD_REF")
817+
818+
write(" GitHub Actions CI Detected")
819+
793820
else:
794821
query.update(
795822
dict(

tests/test.py

+28
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,7 @@ def test_ci_gitlab(self):
859859
HOME="/",
860860
CI_PROJECT_DIR=os.getcwd().strip("/"),
861861
CODECOV_TOKEN="token",
862+
CODECOV_NAME="name",
862863
)
863864
self.fake_report()
864865
res = self.run_cli()
@@ -869,6 +870,33 @@ def test_ci_gitlab(self):
869870
self.assertEqual(res["query"]["build"], "1399372237")
870871
self.assertEqual(res["query"]["slug"], "owner/repo")
871872
self.assertEqual(res["codecov"].token, "token")
873+
self.assertEqual(res["codecov"].name, "name")
874+
875+
@unittest.skipUnless(
876+
os.getenv("CI") == "true" and os.getenv("GITHUB_ACTION"),
877+
"Skip GitHub Actions CI test",
878+
)
879+
def test_ci_github(self):
880+
self.set_env(
881+
GITHUB_REF="master",
882+
GITHUB_RUN_ID="1399372237",
883+
GITHUB_REPOSITORY="owner/repo",
884+
GITHUB_ACTION="6de813bb999760c81f96f3cf5dbdcd51cead172f",
885+
GITHUB_SHA="d653b934ed59c1a785cc1cc79d08c9aaa4eba73b",
886+
HOME="/",
887+
CODECOV_TOKEN="token",
888+
CODECOV_NAME="name",
889+
)
890+
self.fake_report()
891+
res = self.run_cli()
892+
self.assertEqual(res["query"]["service"], "github")
893+
self.assertEqual(
894+
res["query"]["commit"], "d653b934ed59c1a785cc1cc79d08c9aaa4eba73b"
895+
)
896+
self.assertEqual(res["query"]["build"], "1399372237")
897+
self.assertEqual(res["query"]["slug"], "owner/repo")
898+
self.assertEqual(res["codecov"].token, "token")
899+
self.assertEqual(res["codecov"].name, "name")
872900

873901
@unittest.skip("Skip CI None")
874902
def test_ci_none(self):

0 commit comments

Comments
 (0)