代码之家  ›  专栏  ›  技术社区  ›  Santhosh

gitlab:作业内部的beforescript有什么用

  •  0
  • Santhosh  · 技术社区  · 3 年前

    我觉得用什么 before_script 在工作中。它可以放在里面 script 它本身

    deploy-to-stage:
      stage: deploy
      before_script:
        - "which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )"
        - eval $(ssh-agent -s)
        - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
        - mkdir -p ~/.ssh
        - chmod 700 ~/.ssh
        - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
        - chmod 644 ~/.ssh/known_hosts
        - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com
      script:
        -   *** some code here ***
    

    如果他们要一个接一个地跑

    我能理解 before_script 适用于所有工作,因为它节省了一些样板

    0 回复  |  直到 3 年前
        1
  •  1
  •   Daniel Campos Olivares    3 年前

    有效地,在机器方面 before_script 内容和 script 内容在一个shell中连接并一起执行,但作业不是(仅)由机器读取的。

    让我们以你目前的工作为例,假设我将来必须保持这份工作。

    如果我必须更改与新代码的生成方式或映像的部署方式有关的内容,我可以转到 剧本 部分,因为Job定义正确,我没有任何与Git配置相关的事情要做。另一方面,如果你有前面提到的部分的所有内容,那么当我感兴趣的部分可能在最后时,我将不得不浏览所有代码(但可能不是)

    当然,这只适用于 before_script 剧本 是正确设置的,而不是没有任何考虑的随机分割。