[英]How to make a simple GitLab Ci/CD gitlab-ci.yml file to build an Angular project?
[英]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.