首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何修复gitlab中的动态环境?

如何修复gitlab中的动态环境?
EN

Stack Overflow用户
提问于 2019-08-20 16:43:22
回答 2查看 307关注 0票数 0

我已经在yaml文件中构建了一个“部署评审”阶段,并使用以下代码部署了作业:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
deploy review:
  stage: deploy review
  only:
    - merge_requests
  environment:
    name: review/$CI_COMMIT_REF_NAME 
    url: https://crazymonk84-$CI_ENVIRONMENT_SLUG.surge.sh
  script:
    - npm install -g surge
    - surge --project ./public --domain 
      https://crazymonk84-$CI_ENVIRONMENT_SLUG.surge.sh 

当我检查我的gitlab帐户上的管道时,我在我的审查分支上看到提交,但我没有看到“部署评审”作业正在运行。我看到“测试工件”“测试网站”作业正在运行。

指向gitlab项目的链接是https://gitlab.com/syed.r.abdullah/my-static-website/tree/review

我采取了以下步骤:

  1. 在yaml文件中添加“部署评审”
  2. 在本地创建了一个新的分支“评审”
  3. 将更改添加到审核分支中的yaml文件中。
  4. 承诺改变
  5. 使用git push -u origin review将更改推送到gitlab
  6. 访问了我的管道,并看到了处于失败状态的检查管道
  7. 在评审管道内的作业是“测试工件”和“测试网站”,而不是“部署评审”。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
image: node

variables:
  STAGING_DOMAIN: crazymonk84-staging.surge.sh
  PRODUCTION_DOMAIN: crazymonk84.surge.sh

stages:
  - build
  - test
  - deploy review
  - deploy staging
  - deploy production
  - production tests
  - cache

cache:
  key: ${CI_COMMIT_REF_SLUG}
  policy: pull
  paths:
    - node_modules/

update cache:
  stage: cache
  script:
    - npm install
  only:
    - schedules
  cache:
    key: ${CI_COMMIT_REF_SLUG}
    policy: push
    paths:
      - node_modules/

build website:
  stage: build
  only: 
    - master
    - merge_requests
  except:
    - schedules
  script:
    - echo $CI_COMMIT_SHORT_SHA
    - npm install -g gatsby-cli
    - npm i xstate@4.6.4
    - gatsby build
    - sed -i "s/%%VERSION%%/$CI_COMMIT_SHORT_SHA/" ./public/index.html
  artifacts:
    paths:
      - ./public

test website:
  stage: test
  except:
    - schedules
  script:
    - npm install -g gatsby-cli
    - npm i xstate@4.6.4
    - gatsby serve &
    - sleep 3
    - curl "http://localhost:9000" | tac | tac | grep -q "Gatsby"  

test artifact:
  image: alpine
  stage: test
  except:
    - schedules
  script:
    - grep -q "Gatsby" ./public/index.html
  cache: {}

deploy review:
  stage: deploy review
  only:
    - merge_requests
  environment:
    name: review/$CI_COMMIT_REF_NAME 
    url: https://crazymonk84-$CI_ENVIRONMENT_SLUG.surge.sh
  script:
    - npm install -g surge
    - surge --project ./public --domain https://crazymonk84-$CI_ENVIRONMENT_SLUG.surge.sh      

deploy staging: 
  stage: deploy staging
  environment: 
    name: staging
    url: http://$STAGING_DOMAIN
  only: 
    - master 
  except:
    - schedules
  script:
    - npm install --global surge
    - surge --project ./public --domain $STAGING_DOMAIN
  cache: {}

deploy production: 
  stage: deploy production
  environment: 
    name: production
    url: http://$PRODUCTION_DOMAIN
  only:
    - master  
  when: manual
  allow_failure: false
  except:
    - schedules
  script:
    - npm install --global surge
    - surge --project ./public --domain $PRODUCTION_DOMAIN
  cache: {}

production tests:
  image: alpine
  stage: production tests
  only: 
    - master
  except:
    - schedules
  script:
    - apk add --no-cache curl
    - curl -s "https://$PRODUCTION_DOMAIN" | grep -q "Hi people"
    - curl -s "https://$PRODUCTION_DOMAIN" | grep -q "$CI_COMMIT_SHORT_SHA"
  cache: {}

我期望看到“部署审查”是正在进行中的唯一工作。然而,我看到了“测试工件”和“测试网站”。我能做些什么来解决这个问题?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2019-08-21 15:35:56

我找到了一个解决办法:

将以下内容添加到构建网站部署审查阶段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
only:
    - master
    - merge_requests
票数 0
EN

Stack Overflow用户

发布于 2021-12-12 12:22:11

我想你看了瓦伦丁·德斯帕的课程。我刚刚遇到了同样的问题。我想知道他是否就这一问题发表了任何解决办法。

基本上我不确定如果我是对的但是..。

如果我们打开链接,可能会找到一个解释:pipelines.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
only:
  - merge_requests

以分离模式运行部署审查阶段。我们无法访问环境变量,因为它们是受保护的。我所做的就是去设置->、CI/CD、->变量,->去掉了两个变量的受保护变量选项中的勾号。

然后,如果您再次运行该管道,您会注意到它会在./public上抛出一个错误。

播放他的视频动态环境和通知在4:49 (时间线)有三个绿色管道。您只有一个(您的管道是分离的)!意思是网站建设阶段还没有运行。这就是为什么您将看到与./public相关的错误,因为您的管道对盖茨比一无所知。我们需要先安装盖茨比,然后再构建它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
deploy review:
  stage: deploy review
  environment:
    name: review/$CI_COMMIT_REF_NAME
    url: https://yourdomain-$CI_ENVIRONMENT_SLUG.surge.sh
  only:
    - merge_requests
  script:
    - npm install --silent
    - npm install -g gatsby-cli
    - gatsby build
    - npm install --global surge
    - surge --project ./public --domain yourdomain-$CI_ENVIRONMENT_SLUG.surge.sh
  artifacts:
    paths:
      - ./public
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57583093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文