标签版本不是用CircleCI构建的

Jon*_*IAR 9 continuous-integration release continuous-deployment circleci

我正在使用CircleCI来构建一个项目,一切运行正常,除了我的标签在推送到github时没有构建:

我不明白为什么,我已将整个配置减少到简约配置文件,它是相同的逻辑:

version: 2

jobs:

  my_dummy_job_nightly:
    working_directory: ~/build
    docker:
      - image: docker:git
    steps:
      - checkout
      - setup_remote_docker:
          reusable: true
          exclusive: true

      - run:
          name: NIGHTLY BUILD
          command: |

            apk add --update py-pip
            python -m pip install --upgrade pip

  my_dummy_job_deploy:
    working_directory: ~/build
    docker:
      - image: docker:git
    steps:
      - checkout
      - setup_remote_docker:
          reusable: true
          exclusive: true

      - run:
          name: RELEASE BUILD
          command: |

            apk add --update py-pip
            python -m pip install --upgrade pip

###################################################################################
#                               CircleCI WORKFLOWS                                #
###################################################################################

workflows:
  version: 2
  build-and-deploy:
    jobs:

      ###################################################################################
      #                                  NIGHTLY BUILDS                                 #
      ###################################################################################

      - my_dummy_job_nightly:
          filters:
            tags:
              ignore: /.*/
            branches:
              only: master


      ###################################################################################
      #                                   TAGS BUILDS                                   #
      ###################################################################################

      - hold:
          type: approval
          filters:
            tags:
              only: /.*/
            branches:
              ignore: /.*/

      - my_dummy_job_deploy:
          requires:
            - hold
          filters:
            tags:
              only: /.*/
            branches:
              ignore: /.*/
Run Code Online (Sandbox Code Playgroud)

我不明白为什么标签不构建......正则表达式应该让一切都通过......

Jon*_*IAR 2

我终于找到了问题所在。与配置无关,CircleCI 界面不会在工作流程界面中显示标签构建,因此操作approval会阻塞整个过程。

要访问工作流程并批准部署,您必须单击构建并单击工作流程(见下文):

在此输入图像描述

一旦进入工作流程,就可以批准该流程:

在此输入图像描述

我发现的使构建出现的唯一解决方案是在构建过程中创建一个虚拟且无用的步骤,该步骤将在批准之前出现。

version: 2

jobs:

  init_tag_build:
    working_directory: ~/build
    docker:
      - image: docker:git
    steps:
      - checkout
      - setup_remote_docker:
          reusable: true
          exclusive: true

      - run:
          name: Launch Build OP
          command: |
            echo "start tag workflow"

  my_deploy_job:
    working_directory: ~/build
    docker:
      - image: docker:git
    steps:
      - checkout
      - setup_remote_docker:
          reusable: true
          exclusive: true

      - run:
          name: DEPLOY BUILD
          command: |
            echo "do the deploy work"

workflows:
  version: 2
  build-and-deploy:
    jobs:

      - init_tag_build:
          filters:
            tags:
              only: /.*/
            branches:
              ignore: /.*/

      - hold:
          type: approval
          requires:
            - init_tag_build
          filters:
            tags:
              only: /.*/
            branches:
              ignore: /.*/

      - my_deploy_job:
          requires:
            - hold
          filters:
            tags:
              only: /.*/
            branches:
              ignore: /.*/
Run Code Online (Sandbox Code Playgroud)