cncjs

Форк
0
/
config.yml 
121 строка · 3.7 Кб
1
# https://circleci.com/blog/persisting-data-in-workflows-when-to-use-caching-artifacts-and-workspaces/
2

3
version: 2.1
4

5
orbs:
6
  browser-tools: circleci/browser-tools@1.1.3
7

8
workflows:
9
  version: 2
10
  workflow:
11
    jobs:
12
      # The `build-tag` job will not run on all branches and will run only on the matched tags.
13
      - build-tag:
14
          filters:
15
            branches:
16
              ignore: /.*/
17
            tags:
18
              only: /v[0-9]+(\.[0-9]+)*/
19
      # The `deploy-tag` job will not run on all branches and will run only on the matched tags.
20
      - deploy-tag:
21
          requires:
22
            - build-tag
23
          filters:
24
            branches:
25
              ignore: /.*/
26
            tags:
27
              only: /v[0-9]+(\.[0-9]+)*/
28

29
# https://circleci.com/docs/2.0/executor-types/
30
jobs:
31
  build-tag:
32
    docker:
33
      - image: cimg/node:14.21-browsers
34
    steps:
35
      - checkout
36
      - browser-tools/install-browser-tools
37
      - run:
38
          name: Configuration
39
          command: |
40
            npm config set loglevel warn
41
            npm config set scripts-prepend-node-path auto
42
      - run:
43
          name: Setup environment variables
44
          command: |
45
            echo "export CI_BRANCH=${CIRCLE_BRANCH}" >> $BASH_ENV
46
            echo "export CI_BUILD_NUMBER=${CIRCLE_BUILD_NUM}" >> $BASH_ENV
47
            echo "export CI_COMMIT=${CIRCLE_SHA1}" >> $BASH_ENV
48
            echo "export CI_COMMIT_SHORT=${CIRCLE_SHA1:0:8}" >> $BASH_ENV
49
            echo "export CI_TAG=${CIRCLE_TAG}" >> $BASH_ENV
50
      - run:
51
          name: Install system packages
52
          command: |
53
            sudo apt-get update
54
      - run:
55
          name: Check version
56
          command: |
57
            git --version
58
            node --version
59
            java --version
60
            google-chrome --version
61
            npm --version
62
            yarn --version
63
      - run:
64
          name: Install packages
65
          command: |
66
            yarn
67
      - run:
68
          name: Build
69
          command: |
70
            yarn clean
71
            yarn lint
72
            yarn test
73
            if [[ -z "$CI_TAG" ]]; then
74
              yarn build-latest
75
            else
76
              yarn build
77
            fi
78
      - run:
79
          name: Archive build artifacts
80
          command: |
81
            tar -zcvf ci.tar.gz --directory dist cncjs
82
      - persist_to_workspace:
83
          # Must be an absolute path, or relative path from working_directory.
84
          # This is a directory on the container which is taken to be the root directory of the workspace.
85
          root: .
86
          paths:
87
            - ci.tar.gz
88
  deploy-tag:
89
    docker:
90
      - image: cimg/node:14.21
91
    steps:
92
      - setup_remote_docker
93
      - checkout
94
      - run:
95
          name: Setup environment variables
96
          command: |
97
            echo "export CI_BRANCH=${CIRCLE_BRANCH}" >> $BASH_ENV
98
            echo "export CI_TAG=${CIRCLE_TAG}" >> $BASH_ENV
99
      - attach_workspace:
100
          # Must be absolute path or relative path from working_directory
101
          at: workspace
102
      - run:
103
          name: Extract build artifacts
104
          command: |
105
            mkdir -p dist
106
            tar zxvf workspace/ci.tar.gz --directory dist
107
      - run:
108
          name: Build Docker image
109
          command: |
110
            DOCKER_BRANCH_TAG=$(echo $CI_TAG | sed -e 's/\//-/g')
111
            DOCKER_REPO=cncjs/cncjs
112

113
            echo "DOCKER_BRANCH_TAG=$DOCKER_BRANCH_TAG"
114
            echo "DOCKER_REPO=$DOCKER_REPO"
115

116
            echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
117
            docker build -f Dockerfile -t $DOCKER_REPO:$DOCKER_BRANCH_TAG .
118
            docker images
119
            docker push $DOCKER_REPO:$DOCKER_BRANCH_TAG
120
            docker tag $DOCKER_REPO:$DOCKER_BRANCH_TAG $DOCKER_REPO:latest
121
            docker push $DOCKER_REPO:latest
122

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.