首页 > 解决方案 > GitLab CI 使用标签工件进行发布而不被覆盖

问题描述

我遇到的问题是我composer.json在标签阶段用 npm 的 package.json 版本重写了我的扩展。但是如果涉及到 release 部分,composer.json则使用分支的而不是 artifact composer.json

tag:
  extends: .node
  image: node
  stage: prepare for deployment
  artifacts:
    reports:
      dotenv: variables.env # Use artifacts:reports:dotenv to expose the variables to other jobs
    when: on_success
    expire_in: 2 weeks
    paths:
      - variables.env
      - ./vendor/
      - ./web/
      - ./composer.json
      - ./composer.lock
  before_script:
    - npm i minimist
  script:
    - npm run version:show
    - npm run version:copy
    - npm run version:set
    - VERSION=$(node -pe "require('./package.json').version")
    - echo $VERSION
    - echo "EXTRA_DESCRIPTION=some message" >> variables.env  # Generate the EXTRA_DESCRIPTION and TAG environment variables
    - echo "TAG=$VERSION" >> variables.env     # and append to the variables.env file

release:
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  stage: release
  script:
    - echo 'running release_job'
  needs:
    - job: tag
      artifacts: true
  release:
    name: 'Release $TAG'
    description: 'Created using the release-cli $EXTRA_DESCRIPTION'  # $EXTRA_DESCRIPTION and the $TAG
    tag_name: '$TAG'                                                 # variables must be defined elsewhere
    ref: '$CI_COMMIT_SHA'

那是我的gitlab-ci.yml,我不知道如何处理它。所以只是为了让你明白。例如composer.json,版本为0.0.1,但我们要推送1.2.3版本。这就是为什么我们在 中定义它package.json并让它被覆盖(我们对多个文件执行此操作以使它们都具有相同的版本)。

标签: gitlabcontinuous-deployment

解决方案


推荐阅读