From 90d5c52f4dd64f046a2e2469d001e32ec2d53966 Mon Sep 17 00:00:00 2001 From: John Andersen Date: Mon, 26 Sep 2022 12:25:52 +0000 Subject: [PATCH] alice: shouldi: contribute: cicd: Boolean labels added via overlay Install Alice: https://github.com/intel/dffml/tree/alice/entities/alice/ ```console $ python -m venv .venv $ . .venv/bin/activate $ python -m pip install -U pip setuptools wheel $ export ALICE_STATE_OF_ART=98335d941116e76bbf4e07422adc2b5061e47934 $ python -m pip install \ "https://github.com/intel/dffml/archive/${ALICE_STATE_OF_ART}.zip#egg=dffml" \ "https://github.com/intel/dffml/archive/${ALICE_STATE_OF_ART}.zip#egg=dffml-feature-git&subdirectory=feature/git" \ "https://github.com/intel/dffml/archive/${ALICE_STATE_OF_ART}.zip#egg=shouldi&subdirectory=examples/shouldi" \ "https://github.com/intel/dffml/archive/${ALICE_STATE_OF_ART}.zip#egg=dffml-config-yaml&subdirectory=configloader/yaml" \ "https://github.com/intel/dffml/archive/${ALICE_STATE_OF_ART}.zip#egg=dffml-operations-innersource&subdirectory=operations/innersource" \ "https://github.com/intel/dffml/archive/${ALICE_STATE_OF_ART}.zip#egg=alice&subdirectory=entities/alice" ``` Install this overlay (from this commit in this example): ```console $ python -m pip install --upgrade "git+https://github.com/intel/dffml@d2a38d47445241fc99d26bc2a51184caa88bd033#subdirectory=entities/alice" ``` Collect metrics on a repo using `alice shouldi contribute`: ```console $ alice -log debug shouldi contribute -keys https://github.com/pdxjohnny/httptest 2>&1 | tee .alice.shouldi.contribute.log.$(date "+%4Y-%m-%d-%H-%M").txt $ alice -log debug shouldi contribute -record-def GitHubRepoID -keys 149512216 2>&1 | tee .alice.shouldi.contribute.log.$(date "+%4Y-%m-%d-%H-%M").txt $ python -c 'import yaml, json, sys; print(yaml.dump(json.load(sys.stdin)))' < .tools/open-architecture/innersource/repos.json untagged: https://github.com/aliceoa/example-github-action: features: alice.shouldi.contribute.cicd:cicd_action_library: result: true group_by: ActionYAMLFileWorkflowUnixStylePath: - my_action_name/action.yml ``` Engineering Log: https://github.com/intel/dffml/discussions/1406#discussioncomment-3735234 Signed-off-by: John Andersen --- .../alice/alice/shouldi/contribute/cicd.py | 43 +++++++++++++++++++ entities/alice/entry_points.txt | 3 ++ 2 files changed, 46 insertions(+) create mode 100644 entities/alice/alice/shouldi/contribute/cicd.py diff --git a/entities/alice/alice/shouldi/contribute/cicd.py b/entities/alice/alice/shouldi/contribute/cicd.py new file mode 100644 index 0000000000..3237a1990f --- /dev/null +++ b/entities/alice/alice/shouldi/contribute/cicd.py @@ -0,0 +1,43 @@ +from typing import NewType + +import dffml +import dffml_operations_innersource.operations + + +IsCICDJenkinsLibrary = NewType("IsCICDJenkinsLibrary", bool) +IsCICDGitHubActionsLibrary = NewType("IsCICDGitHubActionsLibrary", bool) +CICDLibrary = NewType("CICDLibrary", dict) + + +@dffml.op( + stage=dffml.Stage.OUTPUT, +) +def cicd_library( + self, + cicd_jenkins_library: IsCICDJenkinsLibrary, + cicd_action_library: IsCICDGitHubActionsLibrary, +) -> CICDLibrary: + return { + "cicd-jenkins-library": cicd_jenkins_library, + "cicd-action-library": cicd_action_library, + } + + +@dffml.op( + stage=dffml.Stage.OUTPUT, +) +def cicd_jenkins_library( + self, + groovy_file_paths: dffml_operations_innersource.operations.GroovyFileWorkflowUnixStylePath, +) -> IsCICDJenkinsLibrary: + return bool(groovy_file_paths) + + +@dffml.op( + stage=dffml.Stage.OUTPUT, +) +def cicd_action_library( + self, + action_file_paths: dffml_operations_innersource.operations.ActionYAMLFileWorkflowUnixStylePath, +) -> IsCICDGitHubActionsLibrary: + return bool(action_file_paths) diff --git a/entities/alice/entry_points.txt b/entities/alice/entry_points.txt index 3cd5981b9e..1419792457 100644 --- a/entities/alice/entry_points.txt +++ b/entities/alice/entry_points.txt @@ -23,3 +23,6 @@ OverlayGitHub = alice.please.contribute.recomme [dffml.overlays.alice.please.contribute.recommended_community_standards.code_of_conduct] OverlayGit = alice.please.contribute.recommended_community_standards.recommended_community_standards:OverlayGit OverlayGitHub = alice.please.contribute.recommended_community_standards.recommended_community_standards:OverlayGitHub + +[dffml.overlays.alice.shouldi.contribute] +OverlayCICDLibrary = alice.shouldi.contribute.cicd