小编Wel*_*oud的帖子

您能否设置 Gitlab CI 阶段,以便其他阶段不等待它完成?

假设我在中定义了这些阶段.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完成然后启动deploydeploy完成后我想启动post-deploy。我真的不关心analysis结果,我只是想触发它并继续部署。

continuous-integration gitlab gitlab-ci gitlab-ci-runner

15
推荐指数
2
解决办法
1万
查看次数

如何在.gitlab-ci.yml变量中使用条件?

我想知道,如果可以从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

12
推荐指数
2
解决办法
2万
查看次数

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)

caching gitlab composer-php docker gitlab-ci

5
推荐指数
1
解决办法
4480
查看次数

MySQL在一个查询中选择多个计数

我有2张桌子 - departmentsemployees.我想从中选择所有列,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)

mysql sql join count

2
推荐指数
1
解决办法
7518
查看次数