【问题标题】:Gitlab CI/CD execute script file that exist in the repositoryGitlab CI/CD 执行存储库中存在的脚本文件
【发布时间】:2022-12-24 04:41:33
【问题描述】:

我有以下项目:

在文件 .gitlab-ci.yml 中,我有一个用不同行编写的运行脚本:

deploy-uat:
  <<: *job_definition
  image: /python:3.8
  stage: publish
  script:
    - if [[ $START_DATE == "" ]]; then echo "START_DATE is empty"; exit 1; fi;
    - ssh -o StrictHostKeyChecking=no $USER@$SERVER 'kinit ad1frdqscuat@DATAUAT.EDHV2 -kt /etc/security/keytabs/ad1frdqscuat.keytab'
    - ssh -o StrictHostKeyChecking=no $USER@$SERVER 'rm -rf /opt/application/UAT/1FR/DQSC/contracts/'
    - ssh -o StrictHostKeyChecking=no $USER@$SERVER 'mkdir /opt/application/UAT/1FR/DQSC/contracts/'
    - ssh -o StrictHostKeyChecking=no $USER@$SERVER 'rm -rf /opt/application/UAT/1FR/DQSC/jar/'
    - ssh -o StrictHostKeyChecking=no $USER@$SERVER 'mkdir /opt/application/UAT/1FR/DQSC/jar/'
    - scp $JAR_PATH $USER@$SERVER:/opt/application/UAT/1FR/DQSC/jar/
    - scp $CONTRACT_PATH $USER@$SERVER:/opt/application/UAT/1FR/DQSC/contracts/
    - ssh -o StrictHostKeyChecking=no $USER@$SERVER 'chmod -R 755 /opt/application/UAT/1FR/DQSC/jar/'
    - ssh -o StrictHostKeyChecking=no $USER@$SERVER '/opt/application/UAT/1FR/DQSC/draguenelle/1.13.3/bin/deployEnricher.sh -f /opt/application/UAT/1FR/DQSC/contracts/*.xlsm -o PROFITABILITY_KPI -j /opt/application/UAT/1FR/DQSC/jar/dqsc-different-ip-bandwidth-assembly-*.jar -qo DQSC -qs DQSC -m enrichment -s ' $START_DATE'T00:00Z'
  rules:
    - if: $CI_COMMIT_BRANCH == "develop"
      when: manual
  when: manual

我想把所有的内容脚本在我将在项目存储库中创建的单独文件中标记,例如脚本.sh并替换 gitlab-ci.yml 中的所有行。

【问题讨论】:

  • 您是否考虑过只调用脚本?例如script: ./myscript.sh 应该根据你的描述做你想做的。

标签: gitlab sh gitlab-ci


【解决方案1】:

您可以在根目录文件夹中创建一个 script.sh

然后在 yml 中的脚本部分:

   script:
    - chmod +x ./script.sh; ./script.sh

并且不要忘记从脚本文件中每一行的开头删除“-”字符。

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2021-04-02
    • 2021-10-14
    • 2022-07-04
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多