假设我在中定义了这些阶段.gitlab-ci.yml:
stages:
- build
- analysis
- tests
- deploy
- post-deploy
Run Code Online (Sandbox Code Playgroud)
由于analysis需要花费很多时间并且我并不真正关心结果(我也已经allow_failure: true设置) - 是否可以以某种方式定义开始analysis然后立即启动下一阶段tests?
我在官方文档上没有找到任何类似主题的参考。
编辑:
主要思想是所有其他阶段都可以运行,就好像它们analysis根本不存在一样。如果我将 和 置于analysis同一阶段tests,那么 和analysis都会tests同时运行,但是deploy直到它们都完成后才会启动。这可不行。我想tests完成然后启动deploy,deploy完成后我想启动post-deploy。我真的不关心analysis结果,我只是想触发它并继续部署。
我想知道,如果可以从if-else条件语句设置自定义Gitlab CI变量.
在我的.gitlab-ci.yml文件中,我有以下内容:
variables:
PROJECT_VERSION: (if [ "${CI_COMMIT_TAG}" == "" ]; then "${CI_COMMIT_REF_NAME}-${CI_PIPELINE_ID}"; else ${CI_COMMIT_TAG}; fi);
Trying to set project version:
image: php:7.1-cli
stage: test
script:
# this echoes correct string (eg. "master-2794")
- (if [ "${CI_COMMIT_TAG}" == "" ]; then echo "${CI_COMMIT_REF_NAME}-${CI_PIPELINE_ID}"; else echo ${CI_COMMIT_TAG}; fi);
# this echoes something like "(if [ "" == "" ]; then "master-2794"; else ; fi);"
- echo $PROJECT_VERSION
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?如果是这样,我错过了什么?谢谢
variables continuous-integration if-statement gitlab gitlab-ci
当项目构建中不使用缓存文件时,我面临一个问题。就我而言,我想在构建阶段下载composer依赖项,然后在所有其他阶段都成功之后将它们添加到最终项目文件夹中。我认为,如果将cache属性设置到.gitlab-ci.yml文件中,它也会在其他阶段共享和使用。但这有时有效,有时却无效。
Gitlab版本是9.5.4
这是我的.gitlab-ci.yml文件:
image: ponk/debian:jessie-ssh
variables:
WEBSERVER: "user@example.com"
WEBSERVER_DEPLOY_DIR: "/domains/example.com/web-presentation/deploy/"
WEBSERVER_CDN_DIR: "/domains/example.com/web-presentation/cdn/"
TEST_VENDOR: '[ "$(ls -A ${WEBSERVER_DEPLOY_DIR}${CI_COMMIT_REF_NAME}/${CI_COMMIT_SHA}/vendor)" ]'
cache:
key: $CI_PIPELINE_ID
untracked: true
paths:
- vendor/
before_script:
stages:
- build
- tests
- deploy
- post-deploy
Build sources:
image: ponk/php5.6
stage: build
script:
# Install composer dependencies
- composer -n install --no-progress
only:
- tags
- staging
Deploy to Webserver:
stage: deploy
script:
- echo "DEPLOYING TO ... ${WEBSERVER_DEPLOY_DIR}${CI_COMMIT_REF_NAME}/${CI_COMMIT_SHA}"
- ssh $WEBSERVER mkdir -p …Run Code Online (Sandbox Code Playgroud) 我有2张桌子 - departments和employees.我想从中选择所有列,departments并且还添加一个列,其中包含每个部门中的子部门和员工数量.
简化表格如下所示:
departments:
id name parent_id
---------------------------------
1 IT NULL
2 HR NULL
3 Bussiness NULL
4 Web dev 1
5 Ecommerce 4
6 Advertisement 3
7 Control 3
8 Programmers 1
Run Code Online (Sandbox Code Playgroud)
employees:
id name department_id
---------------------------------
1 Adam 1
2 Ben 8
3 Charles 7
4 David 4
5 Eugen 4
6 Frank 6
7 Gustav 6
8 Heremy 4
9 Igor 5
10 Jacob 3
Run Code Online (Sandbox Code Playgroud)
我想要的结果是:
id name parent_id …Run Code Online (Sandbox Code Playgroud)