簡體   English   中英

用於 Angular 的 Gitlab 管道 CI/CD .gitlab-ci.yml

[英]Gitlab Pipeline CI/CD .gitlab-ci.yml for Angular

我是 Gitlab 的 CD 新手,想為 Angular 添加管道。 一切正常,除了我無法使用下面提到的以下命令將 dist 文件夾從一個位置復制到另一個位置。

下面是我的 yml 文件

image: node:latest
cache:
  paths:
    - node_modules/
deploy_stage:
  stage: deploy
  environment: staging
  only:
    - staging
  script:
    - echo "$(ls -la)"
    - npm install
    - npm install -g @angular/cli
    - ng build --prod --build-optimizer --progress=false
    - echo "$(ls -la dist/)"
  artifacts:
    expire_in: 1 day
    paths:
      - cp -R ~/builds/KtpUrx12/0/root/admin/dist/ /var/www/vhosts/domain.com/staging.domain.com
      - chown -R myadmin:admin /var/www/vhosts/domain.com/staging.domain.com

復制命令給了我“沒有匹配的文件”的錯誤。 此外,我為 chown 遇到了同樣的錯誤。

我做錯了什么? 先感謝您!

我采取的方法是運行兩個階段,第一個階段我緩存文件,第二個階段我使用這些文件進行部署。 我不使用工件功能,所以我不能評論它是如何工作的,但是在執行時這些文件可能不再可用。

請注意我如何在build_stage使用cache來緩存/dist文件夾以在deploy_stage使用。

我還展示了如何使用scp跨服務器復制,這可能會派上用場。 它也可以復制到127.0.0.1

image: node:latest

cache:
  paths:
    - node_modules/

stages:
  - build
  - deploy

build_stage:
  stage: build
  only:
    - staging
  cache:
    paths:
      - dist/
  script:
    - rm ./package-lock.json
    - npm install
    - ./node_modules/@angular/cli/bin/ng build --prod --build-optimizer --progress=false

deploy_stage:
  stage: deploy
  environment: staging
  only:
    - staging
  script:
    - scp -r dist/my-app/* $STAGING_SERVER_URI:/opt/staging/my-app

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM