[英]Gitlab CI Angular Artifacts not accessible
我正在嘗試使用 gitlab 管道構建和部署我的 angular 項目。 有兩個工作。 一種用於構建 angular 應用程序,一種用於部署。 我的gitlab-ci.yml
看起來像這樣。
image: node:latest
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
before_script:
- npm install > /dev/null
stages:
- build
- deploy
build:
stage: build
artifacts:
paths:
- dist/
expire_in: 1 week
script:
- npm run build --prod
deploy:
stage: deploy
dependencies:
- build
environment: production
image: mjsarfatti/gitlab-ci-pipeline-php-aws:latest
before_script:
- mkdir ~/.aws/
- touch ~/.aws/credentials
- printf "[eb-cli]\naws_access_key_id = %s\naws_secret_access_key = %s\n" "$AWS_ACCESS_KEY_ID" "$AWS_SECRET_ACCESS_KEY" >> ~/.aws/credentials
script:
- git checkout master
- eb deploy my_project
only:
- master
部署作業中使用的 aws cli 構建了位於我的項目根目錄中的 dockerfile。 我的問題是每次運行部署作業時都會收到此錯誤:
Step 3/7 : COPY dist/src /usr/share/nginx/html
44 COPY failed: stat /var/lib/docker/tmp/docker-builder648218383/dist/src: no such file or directory.
上一個構建作業的工件似乎丟失了。 我的gitlab-ci.yaml
文件有什么問題?
當工件被提取到其他管道步驟中時,它會被提取到您通過 git 下拉的代碼的不同位置。 對我來說,我已經看到工件放在我的代碼所在的父目錄中。 例如,如果我有這個目錄結構:
--- gitlab_ci_root
--- my_code
提取的工件將放在gitlab_ci_root
下,而不是my_code
。
您可以通過將幾個ls
放入deploy
步驟來測試這一點。
deploy:
stage: deploy
dependencies:
- build
environment: production
image: mjsarfatti/gitlab-ci-pipeline-php-aws:latest
before_script:
- ls # directory list of current directory, likely your code
- ls ../ # directory list of the parent directory.
- mkdir ~/.aws/
- touch ~/.aws/credentials
- printf "[eb-cli]\naws_access_key_id = %s\naws_secret_access_key = %s\n" "$AWS_ACCESS_KEY_ID" "$AWS_SECRET_ACCESS_KEY" >> ~/.aws/credentials
script:
- git checkout master
- eb deploy my_project
only:
- master
一旦找到dist/
目錄的解壓位置,您就可以在腳本中將 dist 移動到您需要的任何位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.