zrb 0.26.0__py3-none-any.whl → 0.26.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zrb/builtin/monorepo/_common.sh +15 -0
- zrb/builtin/monorepo/_config.py +2 -2
- zrb/builtin/monorepo/_helper.py +140 -0
- zrb/builtin/monorepo/_task.py +98 -71
- zrb/builtin/monorepo/add-subrepo.sh +22 -0
- zrb/builtin/monorepo/add.py +9 -1
- zrb/builtin/monorepo/pull-monorepo.sh +18 -0
- zrb/builtin/monorepo/pull-subrepo.sh +18 -0
- zrb/builtin/monorepo/pull.py +2 -1
- zrb/builtin/monorepo/push-monorepo.sh +18 -0
- zrb/builtin/monorepo/push-subrepo.sh +18 -0
- zrb/builtin/monorepo/push.py +3 -14
- zrb/helper/asyncio_task.py +8 -5
- zrb/helper/cli.py +0 -1
- zrb/task/base_task/base_task.py +1 -1
- zrb/task/flow_task.py +0 -1
- {zrb-0.26.0.dist-info → zrb-0.26.2.dist-info}/METADATA +1 -1
- {zrb-0.26.0.dist-info → zrb-0.26.2.dist-info}/RECORD +21 -14
- {zrb-0.26.0.dist-info → zrb-0.26.2.dist-info}/LICENSE +0 -0
- {zrb-0.26.0.dist-info → zrb-0.26.2.dist-info}/WHEEL +0 -0
- {zrb-0.26.0.dist-info → zrb-0.26.2.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,15 @@
|
|
1
|
+
log_info() {
|
2
|
+
echo -e "🤖 \e[0;33m${1}\e[0;0m"
|
3
|
+
}
|
4
|
+
|
5
|
+
log_error() {
|
6
|
+
echo -e "\e[1;31m${1}\e[0;0m" >&2
|
7
|
+
}
|
8
|
+
|
9
|
+
log_conflict_error() {
|
10
|
+
log_error "Action blocked by unresolved conflicts."
|
11
|
+
log_error "You need to resolve the conflict(s) and commit the changes."
|
12
|
+
log_error "Unresolved conflict(s) detected:"
|
13
|
+
log_error "$1"
|
14
|
+
}
|
15
|
+
|
zrb/builtin/monorepo/_config.py
CHANGED
@@ -2,8 +2,8 @@ import json
|
|
2
2
|
import os
|
3
3
|
from collections.abc import Mapping
|
4
4
|
|
5
|
-
|
6
|
-
MONOREPO_CONFIG_FILE = os.path.join(
|
5
|
+
PROJECT_DIR = os.getenv("ZRB_PROJECT_DIR", ".")
|
6
|
+
MONOREPO_CONFIG_FILE = os.path.join(PROJECT_DIR, "monorepo.zrb.json")
|
7
7
|
MONOREPO_CONFIG: Mapping[str, Mapping[str, str]] = {}
|
8
8
|
|
9
9
|
if os.path.isfile(MONOREPO_CONFIG_FILE):
|
@@ -0,0 +1,140 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
from zrb.builtin.monorepo._config import PROJECT_DIR
|
4
|
+
from zrb.task.cmd_task import CmdTask
|
5
|
+
from zrb.task_env.env import Env
|
6
|
+
from zrb.task_input.any_input import AnyInput
|
7
|
+
from zrb.task_input.str_input import StrInput
|
8
|
+
|
9
|
+
_CURRENT_DIR = os.path.dirname(__file__)
|
10
|
+
|
11
|
+
|
12
|
+
def create_pull_monorepo_task(
|
13
|
+
task_name: str = "pull-monorepo",
|
14
|
+
) -> CmdTask:
|
15
|
+
return CmdTask(
|
16
|
+
name=task_name,
|
17
|
+
envs=[
|
18
|
+
Env("TIME", os_name="", default="{{datetime.datetime.now()}}"),
|
19
|
+
],
|
20
|
+
cmd_path=[
|
21
|
+
os.path.join(_CURRENT_DIR, "_common.sh"),
|
22
|
+
os.path.join(_CURRENT_DIR, "pull-monorepo.sh"),
|
23
|
+
],
|
24
|
+
cwd=PROJECT_DIR,
|
25
|
+
should_show_cmd=False,
|
26
|
+
should_show_working_directory=False,
|
27
|
+
should_print_cmd_result=False,
|
28
|
+
retry=0,
|
29
|
+
)
|
30
|
+
|
31
|
+
|
32
|
+
def create_push_monorepo_task(
|
33
|
+
task_name: str = "push-monorepo", default_commit_message: str = "Save changes"
|
34
|
+
) -> CmdTask:
|
35
|
+
return CmdTask(
|
36
|
+
name=task_name,
|
37
|
+
inputs=[_create_commit_message_input(default_commit_message)],
|
38
|
+
envs=[
|
39
|
+
Env("MESSAGE", os_name="", default="{{input.message}}"),
|
40
|
+
],
|
41
|
+
cmd_path=[
|
42
|
+
os.path.join(_CURRENT_DIR, "_common.sh"),
|
43
|
+
os.path.join(_CURRENT_DIR, "push-monorepo.sh"),
|
44
|
+
],
|
45
|
+
cwd=PROJECT_DIR,
|
46
|
+
should_show_cmd=False,
|
47
|
+
should_show_working_directory=False,
|
48
|
+
should_print_cmd_result=False,
|
49
|
+
retry=0,
|
50
|
+
)
|
51
|
+
|
52
|
+
|
53
|
+
def create_add_subrepo_task(
|
54
|
+
origin: str,
|
55
|
+
folder: str,
|
56
|
+
branch: str,
|
57
|
+
task_name: str = "add",
|
58
|
+
) -> CmdTask:
|
59
|
+
return CmdTask(
|
60
|
+
name=task_name,
|
61
|
+
envs=[
|
62
|
+
Env("ORIGIN", os_name="", default=origin),
|
63
|
+
Env("FOLDER", os_name="", default=folder),
|
64
|
+
Env("BRANCH", os_name="", default=branch),
|
65
|
+
Env("TIME", os_name="", default="{{datetime.datetime.now()}}"),
|
66
|
+
],
|
67
|
+
cmd_path=[
|
68
|
+
os.path.join(_CURRENT_DIR, "_common.sh"),
|
69
|
+
os.path.join(_CURRENT_DIR, "add-subrepo.sh"),
|
70
|
+
],
|
71
|
+
cwd=PROJECT_DIR,
|
72
|
+
should_show_cmd=False,
|
73
|
+
should_show_working_directory=False,
|
74
|
+
should_print_cmd_result=False,
|
75
|
+
retry=0,
|
76
|
+
)
|
77
|
+
|
78
|
+
|
79
|
+
def create_pull_subrepo_task(
|
80
|
+
origin: str,
|
81
|
+
folder: str,
|
82
|
+
branch: str,
|
83
|
+
task_name: str = "pull",
|
84
|
+
) -> CmdTask:
|
85
|
+
return CmdTask(
|
86
|
+
name=task_name,
|
87
|
+
envs=[
|
88
|
+
Env("ORIGIN", os_name="", default=origin),
|
89
|
+
Env("FOLDER", os_name="", default=folder),
|
90
|
+
Env("BRANCH", os_name="", default=branch),
|
91
|
+
Env("TIME", os_name="", default="{{datetime.datetime.now()}}"),
|
92
|
+
],
|
93
|
+
cmd_path=[
|
94
|
+
os.path.join(_CURRENT_DIR, "_common.sh"),
|
95
|
+
os.path.join(_CURRENT_DIR, "pull-subrepo.sh"),
|
96
|
+
],
|
97
|
+
cwd=PROJECT_DIR,
|
98
|
+
should_show_cmd=False,
|
99
|
+
should_show_working_directory=False,
|
100
|
+
should_print_cmd_result=False,
|
101
|
+
retry=0,
|
102
|
+
)
|
103
|
+
|
104
|
+
|
105
|
+
def create_push_subrepo_task(
|
106
|
+
origin: str,
|
107
|
+
folder: str,
|
108
|
+
branch: str,
|
109
|
+
task_name: str = "push",
|
110
|
+
default_commit_message: str = "Commit",
|
111
|
+
) -> CmdTask:
|
112
|
+
return CmdTask(
|
113
|
+
name=task_name,
|
114
|
+
inputs=[_create_commit_message_input(default_commit_message)],
|
115
|
+
envs=[
|
116
|
+
Env("ORIGIN", os_name="", default=origin),
|
117
|
+
Env("FOLDER", os_name="", default=folder),
|
118
|
+
Env("BRANCH", os_name="", default=branch),
|
119
|
+
Env("TIME", os_name="", default="{{datetime.datetime.now()}}"),
|
120
|
+
Env("MESSAGE", os_name="", default="{{input.message}}"),
|
121
|
+
],
|
122
|
+
cmd_path=[
|
123
|
+
os.path.join(_CURRENT_DIR, "_common.sh"),
|
124
|
+
os.path.join(_CURRENT_DIR, "push-subrepo.sh"),
|
125
|
+
],
|
126
|
+
cwd=PROJECT_DIR,
|
127
|
+
should_show_cmd=False,
|
128
|
+
should_show_working_directory=False,
|
129
|
+
should_print_cmd_result=False,
|
130
|
+
retry=0,
|
131
|
+
)
|
132
|
+
|
133
|
+
|
134
|
+
def _create_commit_message_input(default: str) -> AnyInput:
|
135
|
+
return StrInput(
|
136
|
+
name="message",
|
137
|
+
shortcut="m",
|
138
|
+
prompt="Commit Message",
|
139
|
+
default=default,
|
140
|
+
)
|
zrb/builtin/monorepo/_task.py
CHANGED
@@ -1,27 +1,18 @@
|
|
1
|
-
import os
|
2
|
-
from datetime import datetime
|
3
|
-
|
4
1
|
from zrb.builtin.monorepo._config import MONOREPO_CONFIG
|
5
2
|
from zrb.builtin.monorepo._group import monorepo_group
|
3
|
+
from zrb.builtin.monorepo._helper import (
|
4
|
+
create_add_subrepo_task,
|
5
|
+
create_pull_monorepo_task,
|
6
|
+
create_pull_subrepo_task,
|
7
|
+
create_push_monorepo_task,
|
8
|
+
create_push_subrepo_task,
|
9
|
+
)
|
6
10
|
from zrb.helper.util import to_kebab_case
|
7
11
|
from zrb.runner import runner
|
8
|
-
from zrb.task.
|
12
|
+
from zrb.task.flow_task import FlowTask
|
9
13
|
from zrb.task_group.group import Group
|
10
|
-
from zrb.task_input.str_input import StrInput
|
11
14
|
|
12
|
-
|
13
|
-
|
14
|
-
_pull_monorepo = CmdTask(
|
15
|
-
name="pull-monorepo",
|
16
|
-
inputs=[StrInput(name="message")],
|
17
|
-
cwd=_PROJECT_DIR,
|
18
|
-
cmd=[
|
19
|
-
"git add . -A",
|
20
|
-
'git commit -m "{{input.message}}"',
|
21
|
-
'git pull origin "$(git branch --show-current)"',
|
22
|
-
],
|
23
|
-
retry=0,
|
24
|
-
)
|
15
|
+
_pull_monorepo = create_pull_monorepo_task()
|
25
16
|
|
26
17
|
PULL_SUBREPO_UPSTREAM = _pull_monorepo
|
27
18
|
PUSH_SUBREPO_UPSTREAM = _pull_monorepo
|
@@ -30,70 +21,106 @@ for name, config in MONOREPO_CONFIG.items():
|
|
30
21
|
group = Group(
|
31
22
|
name=kebab_name, parent=monorepo_group, description=f"Subrepo {name} management"
|
32
23
|
)
|
33
|
-
|
34
|
-
|
35
|
-
|
24
|
+
origin = config.get("origin", "")
|
25
|
+
folder = config.get("folder", "")
|
26
|
+
branch = config.get("branch", "main")
|
36
27
|
|
37
|
-
|
38
|
-
pull_subrepo = CmdTask(
|
28
|
+
pull_subrepo = FlowTask(
|
39
29
|
name="pull",
|
40
30
|
group=group,
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
31
|
+
upstreams=[_pull_monorepo],
|
32
|
+
steps=[
|
33
|
+
create_add_subrepo_task(
|
34
|
+
origin=origin,
|
35
|
+
folder=folder,
|
36
|
+
branch=branch,
|
37
|
+
task_name=f"add-{kebab_name}-subrepo",
|
38
|
+
),
|
39
|
+
create_pull_subrepo_task(
|
40
|
+
origin=origin,
|
41
|
+
folder=folder,
|
42
|
+
branch=branch,
|
43
|
+
task_name=f"pull-{kebab_name}-subrepo",
|
44
|
+
),
|
48
45
|
],
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
46
|
+
)
|
47
|
+
runner.register(pull_subrepo)
|
48
|
+
|
49
|
+
linked_pull_subrepo = FlowTask(
|
50
|
+
name=f"pull-{kebab_name}",
|
51
|
+
upstreams=[PULL_SUBREPO_UPSTREAM],
|
52
|
+
steps=[
|
53
|
+
create_add_subrepo_task(
|
54
|
+
origin=origin,
|
55
|
+
folder=folder,
|
56
|
+
branch=branch,
|
57
|
+
task_name=f"add-{kebab_name}-subrepo",
|
58
|
+
),
|
59
|
+
create_pull_subrepo_task(
|
60
|
+
origin=origin,
|
61
|
+
folder=folder,
|
62
|
+
branch=branch,
|
63
|
+
task_name=f"pull-{kebab_name}-subrepo",
|
64
|
+
),
|
58
65
|
],
|
59
|
-
retry=0,
|
60
66
|
)
|
61
|
-
_pull_monorepo >> pull_subrepo
|
62
|
-
linked_pull_subrepo = pull_subrepo.copy()
|
63
|
-
PULL_SUBREPO_UPSTREAM >> linked_pull_subrepo
|
64
67
|
PULL_SUBREPO_UPSTREAM = linked_pull_subrepo
|
65
|
-
runner.register(pull_subrepo)
|
66
68
|
|
67
|
-
|
68
|
-
push_subrepo = CmdTask(
|
69
|
+
push_subrepo = FlowTask(
|
69
70
|
name="push",
|
70
71
|
group=group,
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
72
|
+
upstreams=[_pull_monorepo],
|
73
|
+
steps=[
|
74
|
+
create_add_subrepo_task(
|
75
|
+
origin=origin,
|
76
|
+
folder=folder,
|
77
|
+
branch=branch,
|
78
|
+
task_name=f"add-{kebab_name}-subrepo",
|
79
|
+
),
|
80
|
+
create_pull_subrepo_task(
|
81
|
+
origin=origin,
|
82
|
+
folder=folder,
|
83
|
+
branch=branch,
|
84
|
+
task_name=f"pull-{kebab_name}-subrepo",
|
85
|
+
),
|
86
|
+
create_push_subrepo_task(
|
87
|
+
origin=origin,
|
88
|
+
folder=folder,
|
89
|
+
branch=branch,
|
90
|
+
task_name=f"push-{kebab_name}-subrepo",
|
91
|
+
),
|
92
|
+
create_push_monorepo_task(task_name="push-monorepo"),
|
78
93
|
],
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
94
|
+
)
|
95
|
+
runner.register(push_subrepo)
|
96
|
+
|
97
|
+
linked_push_subrepo = FlowTask(
|
98
|
+
name=f"push-{kebab_name}",
|
99
|
+
upstreams=[PUSH_SUBREPO_UPSTREAM],
|
100
|
+
steps=[
|
101
|
+
create_add_subrepo_task(
|
102
|
+
origin=origin,
|
103
|
+
folder=folder,
|
104
|
+
branch=branch,
|
105
|
+
task_name=f"add-{kebab_name}-subrepo",
|
106
|
+
),
|
107
|
+
create_pull_subrepo_task(
|
108
|
+
origin=origin,
|
109
|
+
folder=folder,
|
110
|
+
branch=branch,
|
111
|
+
task_name=f"pull-{kebab_name}-subrepo",
|
112
|
+
),
|
113
|
+
create_push_subrepo_task(
|
114
|
+
origin=origin,
|
115
|
+
folder=folder,
|
116
|
+
branch=branch,
|
117
|
+
task_name=f"push-{kebab_name}-subrepo",
|
118
|
+
),
|
92
119
|
],
|
93
|
-
retry=0,
|
94
120
|
)
|
95
|
-
_pull_monorepo >> push_subrepo
|
96
|
-
linked_push_subrepo = push_subrepo.copy()
|
97
|
-
PUSH_SUBREPO_UPSTREAM >> push_subrepo
|
98
121
|
PUSH_SUBREPO_UPSTREAM = linked_push_subrepo
|
99
|
-
|
122
|
+
|
123
|
+
|
124
|
+
_push_monorepo = create_push_monorepo_task(task_name="push-monorepo")
|
125
|
+
PUSH_SUBREPO_UPSTREAM >> _push_monorepo
|
126
|
+
PUSH_SUBREPO_UPSTREAM = _push_monorepo
|
@@ -0,0 +1,22 @@
|
|
1
|
+
set -e
|
2
|
+
|
3
|
+
if [ -d "${FOLDER}" ]
|
4
|
+
then
|
5
|
+
exit 0
|
6
|
+
fi
|
7
|
+
|
8
|
+
CONFLICT="$(git diff --name-only --diff-filter=U)"
|
9
|
+
if [ -n "${CONFLICT}" ]
|
10
|
+
then
|
11
|
+
log_conflict_error "${CONFLICT}"
|
12
|
+
exit 1
|
13
|
+
fi
|
14
|
+
|
15
|
+
log_info "Adding subtree: ${FOLDER}"
|
16
|
+
git subtree add --prefix "${FOLDER}" "${ORIGIN}" "${BRANCH}"
|
17
|
+
git add . -A
|
18
|
+
if [ -n "$(git status --porcelain)" ]
|
19
|
+
then
|
20
|
+
log_info "Commit changes"
|
21
|
+
git commit -m "Adding subtree: ${FOLDER} at ${TIME}"
|
22
|
+
fi
|
zrb/builtin/monorepo/add.py
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
import json
|
2
|
+
import os
|
2
3
|
from collections.abc import Mapping
|
3
4
|
|
4
|
-
from zrb.builtin.monorepo._config import
|
5
|
+
from zrb.builtin.monorepo._config import (
|
6
|
+
MONOREPO_CONFIG,
|
7
|
+
MONOREPO_CONFIG_FILE,
|
8
|
+
PROJECT_DIR,
|
9
|
+
)
|
5
10
|
from zrb.builtin.monorepo._group import monorepo_group
|
6
11
|
from zrb.runner import runner
|
7
12
|
from zrb.task.any_task import AnyTask
|
@@ -30,6 +35,9 @@ from zrb.task_input.str_input import StrInput
|
|
30
35
|
def add_to_monorepo(*args, **kwargs):
|
31
36
|
task: AnyTask = kwargs.get("_task")
|
32
37
|
input_map: Mapping[str, str] = task.get_input_map()
|
38
|
+
abs_folder = os.path.join(PROJECT_DIR, input_map.get("folder", ""))
|
39
|
+
if os.path.isdir(abs_folder):
|
40
|
+
raise ValueError(f"Directory exists: {abs_folder}")
|
33
41
|
config = dict(MONOREPO_CONFIG)
|
34
42
|
config[input_map.get("alias", "")] = {
|
35
43
|
"folder": input_map.get("folder", ""),
|
@@ -0,0 +1,18 @@
|
|
1
|
+
set -e
|
2
|
+
|
3
|
+
CONFLICT="$(git diff --name-only --diff-filter=U)"
|
4
|
+
if [ -n "${CONFLICT}" ]
|
5
|
+
then
|
6
|
+
log_conflict_error "${CONFLICT}"
|
7
|
+
exit 1
|
8
|
+
fi
|
9
|
+
|
10
|
+
git add . -A
|
11
|
+
if [ -n "$(git status --porcelain)" ]
|
12
|
+
then
|
13
|
+
log_info "Commit changes"
|
14
|
+
git commit -m "Before pulling from monorepo at ${TIME}"
|
15
|
+
fi
|
16
|
+
|
17
|
+
log_info "Pulling from main repository"
|
18
|
+
git pull origin "$(git branch --show-current)"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
set -e
|
2
|
+
|
3
|
+
CONFLICT="$(git diff --name-only --diff-filter=U)"
|
4
|
+
if [ -n "${CONFLICT}" ]
|
5
|
+
then
|
6
|
+
log_conflict_error "${CONFLICT}"
|
7
|
+
exit 1
|
8
|
+
fi
|
9
|
+
|
10
|
+
log_info "Pulling from subtree"
|
11
|
+
git subtree pull --prefix "${FOLDER}" "${ORIGIN}" "${BRANCH}"
|
12
|
+
|
13
|
+
CONFLICT="$(git diff --name-only --diff-filter=U)"
|
14
|
+
if [ -n "${CONFLICT}" ]
|
15
|
+
then
|
16
|
+
log_conflict_error "${CONFLICT}"
|
17
|
+
exit 1
|
18
|
+
fi
|
zrb/builtin/monorepo/pull.py
CHANGED
@@ -15,9 +15,10 @@ pull_from_monorepo = Task(
|
|
15
15
|
name="message",
|
16
16
|
shortcut="m",
|
17
17
|
prompt="Commit Messsage",
|
18
|
-
default=lambda m: f"
|
18
|
+
default=lambda m: f"Synchronize subrepos at {datetime.now()}",
|
19
19
|
)
|
20
20
|
],
|
21
|
+
retry=0,
|
21
22
|
)
|
22
23
|
PULL_SUBREPO_UPSTREAM >> pull_from_monorepo
|
23
24
|
runner.register(pull_from_monorepo)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
set -e
|
2
|
+
|
3
|
+
CONFLICT="$(git diff --name-only --diff-filter=U)"
|
4
|
+
if [ -n "${CONFLICT}" ]
|
5
|
+
then
|
6
|
+
log_conflict_error "${CONFLICT}"
|
7
|
+
exit 1
|
8
|
+
fi
|
9
|
+
|
10
|
+
git add . -A
|
11
|
+
if [ -n "$(git status --porcelain)" ]
|
12
|
+
then
|
13
|
+
log_info "Commit changes"
|
14
|
+
git commit -m "${MESSAGE}"
|
15
|
+
fi
|
16
|
+
|
17
|
+
log_info "Pushing to main repository"
|
18
|
+
git push origin "$(git branch --show-current)"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
set -e
|
2
|
+
|
3
|
+
CONFLICT="$(git diff --name-only --diff-filter=U)"
|
4
|
+
if [ -n "${CONFLICT}" ]
|
5
|
+
then
|
6
|
+
log_conflict_error "${CONFLICT}"
|
7
|
+
exit 1
|
8
|
+
fi
|
9
|
+
|
10
|
+
git add . -A
|
11
|
+
if [ -n "$(git status --porcelain)" ]
|
12
|
+
then
|
13
|
+
log_info "Commit changes"
|
14
|
+
git commit -m "${MESSAGE}"
|
15
|
+
fi
|
16
|
+
|
17
|
+
log_info "Pushing to subtree"
|
18
|
+
git subtree push --prefix "${FOLDER}" "${ORIGIN}" "${BRANCH}"
|
zrb/builtin/monorepo/push.py
CHANGED
@@ -3,21 +3,9 @@ from datetime import datetime
|
|
3
3
|
from zrb.builtin.monorepo._group import monorepo_group
|
4
4
|
from zrb.builtin.monorepo._task import PUSH_SUBREPO_UPSTREAM
|
5
5
|
from zrb.runner import runner
|
6
|
-
from zrb.task.cmd_task import CmdTask
|
7
6
|
from zrb.task.task import Task
|
8
7
|
from zrb.task_input.str_input import StrInput
|
9
8
|
|
10
|
-
_push_monorepo = CmdTask(
|
11
|
-
name="push-monorepo",
|
12
|
-
inputs=[StrInput(name="message")],
|
13
|
-
cmd=[
|
14
|
-
"git add . -A",
|
15
|
-
'git commit -m "{{input.message}}"',
|
16
|
-
'git push origin "$(git branch --show-current)"',
|
17
|
-
],
|
18
|
-
retry=0,
|
19
|
-
)
|
20
|
-
|
21
9
|
push_to_monorepo = Task(
|
22
10
|
name="push",
|
23
11
|
group=monorepo_group,
|
@@ -27,9 +15,10 @@ push_to_monorepo = Task(
|
|
27
15
|
name="message",
|
28
16
|
shortcut="m",
|
29
17
|
prompt="Commit Messsage",
|
30
|
-
default=lambda m: f"
|
18
|
+
default=lambda m: f"Synchronize subrepos at {datetime.now()}",
|
31
19
|
)
|
32
20
|
],
|
21
|
+
retry=0,
|
33
22
|
)
|
34
|
-
PUSH_SUBREPO_UPSTREAM >>
|
23
|
+
PUSH_SUBREPO_UPSTREAM >> push_to_monorepo
|
35
24
|
runner.register(push_to_monorepo)
|
zrb/helper/asyncio_task.py
CHANGED
@@ -16,8 +16,11 @@ async def stop_asyncio():
|
|
16
16
|
|
17
17
|
|
18
18
|
def stop_asyncio_sync():
|
19
|
-
|
20
|
-
|
21
|
-
loop.
|
22
|
-
|
23
|
-
|
19
|
+
try:
|
20
|
+
loop = asyncio.get_event_loop()
|
21
|
+
if loop.is_running():
|
22
|
+
loop.create_task(stop_asyncio())
|
23
|
+
else:
|
24
|
+
loop.run_until_complete(stop_asyncio())
|
25
|
+
except Exception:
|
26
|
+
pass
|
zrb/helper/cli.py
CHANGED
zrb/task/base_task/base_task.py
CHANGED
@@ -288,7 +288,7 @@ class BaseTask(FinishTracker, AttemptTracker, Renderer, BaseTaskModel, AnyTask):
|
|
288
288
|
self._print_result(result)
|
289
289
|
return result
|
290
290
|
except RuntimeError as e:
|
291
|
-
if "event loop is closed" not in str(e).lower():
|
291
|
+
if raise_error and ("event loop is closed" not in str(e).lower()):
|
292
292
|
raise e
|
293
293
|
except Exception as e:
|
294
294
|
self.log_error(f"{e}")
|
zrb/task/flow_task.py
CHANGED
@@ -87,12 +87,19 @@ zrb/builtin/md5/_group.py,sha256=dimqCmJItc7qx7yRm64tL608oMAjOVXRycP7NTSSFi0,100
|
|
87
87
|
zrb/builtin/md5/hash.py,sha256=futO_5AsXHdS5a7vuBLcgnKCpfEO9UeM-EqaIIBPCZE,572
|
88
88
|
zrb/builtin/md5/sum.py,sha256=KZLsXIJrVxvbjyAiVv27-Y2ty-nBRRojsGxXyzQZaYE,688
|
89
89
|
zrb/builtin/monorepo/__init__.py,sha256=AgzIDOcrW4FXxly5SqExyGRo-fIo0ocX_fCScLPDuR0,239
|
90
|
-
zrb/builtin/monorepo/
|
90
|
+
zrb/builtin/monorepo/_common.sh,sha256=HfSIyw_OYGXx0TZzwdLB21fX6sTnZ_45Vf6YXVxxU-k,336
|
91
|
+
zrb/builtin/monorepo/_config.py,sha256=cTKOoDonkVXR-1SGUYtA8d5aUpDkhN4olhPQwfJhV4U,365
|
91
92
|
zrb/builtin/monorepo/_group.py,sha256=idv_8MIE-TCNAvhE0urh7OxTx3qNZbBlE9wYJ-teqa8,115
|
92
|
-
zrb/builtin/monorepo/
|
93
|
-
zrb/builtin/monorepo/
|
94
|
-
zrb/builtin/monorepo/
|
95
|
-
zrb/builtin/monorepo/
|
93
|
+
zrb/builtin/monorepo/_helper.py,sha256=RuK0mkQI73ryixD_iYfp8lxJmrFxkHyFvDThW2fsrF8,4057
|
94
|
+
zrb/builtin/monorepo/_task.py,sha256=1UY8eErrjpykK51UjjIu74lH25jMW8l3k36-eyYk9KI,3869
|
95
|
+
zrb/builtin/monorepo/add-subrepo.sh,sha256=LWyie9_3aCA7OarzDl7HedJnV7OpkkSHUHHPDcToNQ8,426
|
96
|
+
zrb/builtin/monorepo/add.py,sha256=MtPhTEJEdpfRsbdB-hln4hyGzPVWu9kdrmiCxqu0dTs,1580
|
97
|
+
zrb/builtin/monorepo/pull-monorepo.sh,sha256=80mC-FOmIFjhgeGe_s6SzKgf5ZyUwrUsz8O1huTP3Ww,377
|
98
|
+
zrb/builtin/monorepo/pull-subrepo.sh,sha256=7M6haXVkApuS3F1Ndp-jrdRMLbPbSYZUo7ckVAffypI,365
|
99
|
+
zrb/builtin/monorepo/pull.py,sha256=6W9w2QJipn9TYIqaE-tzW_KK1hxPU7oJW0IlH_yPwJA,676
|
100
|
+
zrb/builtin/monorepo/push-monorepo.sh,sha256=qkr6vfIvIKSKCiE1rartU5vahcjP7Ocvrt-zhgc1ZSo,346
|
101
|
+
zrb/builtin/monorepo/push-subrepo.sh,sha256=k-9ZbEEwDOgHn9Jo_CSkZwk4-bkcZm4TUc-e6j8Kvlk,353
|
102
|
+
zrb/builtin/monorepo/push.py,sha256=snKu4ravGFBBxHwLegI_kg65a9sG8bpf7t2T2CanNcE,668
|
96
103
|
zrb/builtin/process/__init__.py,sha256=dWM1zIehY65rkJvEAFvX6HGJHL8kb1gkzaSz0Woay8M,283
|
97
104
|
zrb/builtin/process/_group.py,sha256=KY7iQ_pvqe5iVsRFeLWs-O-xuSyqlTXVj47_TCnu7zQ,118
|
98
105
|
zrb/builtin/process/pid/__init__.py,sha256=Rcb3bYgR_oVNOlaggYjcRipHRehrumZuQyadrguXdR0,293
|
@@ -1328,9 +1335,9 @@ zrb/helper/accessories/icon.py,sha256=uKm3w5G1fV454MUhz_CZMy48AD99kBV9j2zRlJWzB1
|
|
1328
1335
|
zrb/helper/accessories/name.py,sha256=e1uvU3MzuvDb5j6YIWBA048y4qeM-LfrxRKWlMehliE,1638
|
1329
1336
|
zrb/helper/accessories/untyped_color.py,sha256=4wRbHSClbCzPRWtW-Cy2agOMozANVi7u4p8lMXMSuJg,194
|
1330
1337
|
zrb/helper/advertisement.py,sha256=GOaCtWYL9Oj_tAg4jqsCuFsdinHaOSH_6d57y8BbsVU,912
|
1331
|
-
zrb/helper/asyncio_task.py,sha256=
|
1338
|
+
zrb/helper/asyncio_task.py,sha256=0CYQZcMnIO3514b8P0FJnTF9z7UasjJCf9TTDHfZLzM,686
|
1332
1339
|
zrb/helper/callable.py,sha256=usatPKPkK_67G9dWreaGXskOaGHd_hE8MiTWAUhfojE,563
|
1333
|
-
zrb/helper/cli.py,sha256=
|
1340
|
+
zrb/helper/cli.py,sha256=cb82aZCX5NoOHQNTx3wtdKOAQJP79ky4HA6w0VjVBh0,2603
|
1334
1341
|
zrb/helper/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1335
1342
|
zrb/helper/codemod/add_argument_to_function.py,sha256=Xh5Tlb4iO3cv4dRR12ms9kf0j-atVSnCh88TuqCof8I,1435
|
1336
1343
|
zrb/helper/codemod/add_argument_to_function_call.py,sha256=dFFqQ885gG_ZCBgax6sjkWx7s7cIk1amLhTC0Ge_zZo,1186
|
@@ -1388,7 +1395,7 @@ zrb/task/any_task.py,sha256=SlAp6LY-8TGopaQm3eZD3ZEx3wxvCff8UfcnYyu-aiY,39344
|
|
1388
1395
|
zrb/task/any_task_event_handler.py,sha256=ay4v7eXatF4sCiXpUYaHVJZljpnKlvBbFIwvZqXW8Mo,541
|
1389
1396
|
zrb/task/base_remote_cmd_task.py,sha256=EhAT7grnIxFeMfwm8FV6GF6n0kOYESAyIIVzqgZBRBg,12324
|
1390
1397
|
zrb/task/base_task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1391
|
-
zrb/task/base_task/base_task.py,sha256=
|
1398
|
+
zrb/task/base_task/base_task.py,sha256=oihVRUHAvNMwlfLEWQoixt5OwyMLyW9w6bSGD9WGVIk,20457
|
1392
1399
|
zrb/task/base_task/component/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1393
1400
|
zrb/task/base_task/component/base_task_model.py,sha256=EuTWvY54mD_ATy4-VFZw4uCOu3Mfe8hgZikwTnIjmkY,10381
|
1394
1401
|
zrb/task/base_task/component/common_task_model.py,sha256=X_Ubu5kNycQJ-dFiLMARvC6GWQ9pIjBCdxh3MVelc-A,13544
|
@@ -1400,7 +1407,7 @@ zrb/task/cmd_task.py,sha256=B3kRtpb0QVjusPWAMLjpfGxvAdEfgD9_N0jiU55S3rA,14718
|
|
1400
1407
|
zrb/task/decorator.py,sha256=SuajollezbwiSOs29bv8A6PmFcFs_RH4pr4TPcQPDHM,3081
|
1401
1408
|
zrb/task/docker_compose_start_task.py,sha256=n4mLejebyy8sF4rbcfWZucPcBiqPSkDAdGZvOhk4Xt8,5335
|
1402
1409
|
zrb/task/docker_compose_task.py,sha256=QGJ-jlD0jCKIb5avzri1Z29zdIL3Cn6m4kaEOko3U6M,15615
|
1403
|
-
zrb/task/flow_task.py,sha256=
|
1410
|
+
zrb/task/flow_task.py,sha256=wkvvUCrt6n1ul-o3STCPMdrlBuGBrNCRgtRzGyXir9o,5079
|
1404
1411
|
zrb/task/http_checker.py,sha256=gXqBlEStMnIhzmQ7FX9Zo-nG3-wsiVEML8IOJiSG5JI,5705
|
1405
1412
|
zrb/task/looper.py,sha256=zInLRgcQlReGXz4Ffxc2W99RovSChj6kHuGEGmaPb-Q,1432
|
1406
1413
|
zrb/task/notifier.py,sha256=xjqT5Vydr_0cc1m4jA-odhHMZg6CSGciFCs0rhVkvPM,6265
|
@@ -1434,8 +1441,8 @@ zrb/task_input/multiline_input.py,sha256=KNto5k5X1C6KE_A-vX0OjpQyjgCRJ6BR2PwHXNQ
|
|
1434
1441
|
zrb/task_input/password_input.py,sha256=95NlJ9xIq7z_evpAyR2XsBpeuWpBXd2Ezn3P7oDOttk,4360
|
1435
1442
|
zrb/task_input/str_input.py,sha256=0nje7vI9fs_xqQBbmKB8Yn7wevlWp9Qebv7f8-GmiXs,4350
|
1436
1443
|
zrb/task_input/task_input.py,sha256=WTj_qIQyRs-04-VotjNTcVyIuf6b2afInVoCQHoRmr0,2327
|
1437
|
-
zrb-0.26.
|
1438
|
-
zrb-0.26.
|
1439
|
-
zrb-0.26.
|
1440
|
-
zrb-0.26.
|
1441
|
-
zrb-0.26.
|
1444
|
+
zrb-0.26.2.dist-info/LICENSE,sha256=WfnGCl8G60EYOPAEkuc8C9m9pdXWDe08NsKj3TBbxsM,728
|
1445
|
+
zrb-0.26.2.dist-info/METADATA,sha256=-wlbBUk5VeBxb07XicBQtuBGBnUwDhCGYR1pfZwVUmE,17085
|
1446
|
+
zrb-0.26.2.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
1447
|
+
zrb-0.26.2.dist-info/entry_points.txt,sha256=xTgXc1kBKYhJHEujdaSPHUcJT3-hbyP1mLgwkv-5sSk,40
|
1448
|
+
zrb-0.26.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|