我正在尝试利用规则:参数使作业仅在指定用户进行推送时出现在管道中。我不想为每个作业定义用户列表,因此我有以下全局变量:
variables:
USER_LIST: "user1 user2 user3"
Run Code Online (Sandbox Code Playgroud)
在工作中,我有以下几点:
rules:
- if '$USER_LIST =~ /$GITLAB_USER_LOGIN/'
when: on_success
- when: never
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,因为我怀疑正在使用的正则表达式模式没有被变量替换,并用作$GITLAB_USER_LOGIN
搜索字符串。如果我使用显式搜索:
rules:
- if '$USER_LIST =~ /user1/'
when: on_success
- when: never
Run Code Online (Sandbox Code Playgroud)
那么模式就匹配得很好了。
注意:我知道这GITLAB_USER_LOGIN
是一个受保护的变量。我也遇到同样的问题GITLAB_USER_EMAIL
。
所以问题是,如何将 GITLAB 预定义变量放入将用于模式匹配的字符串中?
我们有一些作业需要几个小时才能运行,有时您可以检测到它会提前失败,因此取消作业可能会很有用。但是,当作业从作业列表中消失时,它不会释放运行程序,并且任务仍会在托管运行程序的计算机上运行。杀死它的唯一方法似乎是连接到运行程序并杀死它正在运行的进程。
跑步者如何杀死工作?Gitlab-runner 在 Linux 机器上运行,而不是在 Docker 容器内运行。
考虑我有以下字典:
someDict = {
'A': [1,2,3],
'B': [4,5,6],
'C': [7,8,9]
}
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以迭代为所有可能的组合创建新的字典,即?
{'A' : 1, 'B': 4, 'C':7}
{'A' : 1, 'B': 4, 'C':8}
{'A' : 1, 'B': 4, 'C':9}
{'A' : 2, 'B': 4, 'C':7}
Run Code Online (Sandbox Code Playgroud)
ETC