Лучший способ развернуть приложение реакции с помощью gitlab-ci? - PullRequest
0 голосов
/ 15 декабря 2018

Я только начинаю разбираться с Gitlab CI / CD.У меня есть свой собственный экземпляр gitlab и пара бегунов, 1 общий, 1 специфический для проекта, оба используют механизм докера.

В настоящее время мой промежуточный сервер - это собственная виртуальная машина, которую он размещает с помощью docker-compose.Я обычно развертываю на этом сервере с пустым git-репо и просто сохраняю файлы сборки в git.

Но я хотел переключиться на модель CI / CD, поэтому я попробовал это как мой .gitlab-ci.yml:

image: node

stages:
- build
- stage

build_frontend:
  stage: build
  script:
  - cd ./src/frontend
  - npm install && npm audit fix
  # CI=false set to ignore warnings as errors
  - CI=false npm run build
  artifacts:
    paths:
    - ./src/frontend/build
  tags:
  - projectname

Но я вроде как заблудился от того, как на самом деле развернуть сборку.Как лучше всего передать файлы на промежуточный сервер, который является просто виртуальной машиной.

1 Ответ

0 голосов
/ 15 декабря 2018

Вы можете взять некоторые подсказки о том, как GitLab сам использует свой собственный CI, как описано в " Как использовать GitLab CI для Vue.js ":

У них есть специальный шаг развертывания:

build site:
  image: node:6
  stage: build
  script:
    - npm install --progress=false
    - npm run build
  artifacts:
    expire_in: 1 week
    paths:
      - dist

unit test:
  image: node:6
  stage: test
  script:
    - npm install --progress=false
    - npm run unit

deploy:
  image: alpine
  stage: deploy
  script:
    - apk add --no-cache rsync openssh
    - mkdir -p ~/.ssh
    - echo "$SSH_PRIVATE_KEY" >> ~/.ssh/id_dsa
    - chmod 600 ~/.ssh/id_dsa
    - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
    - rsync -rav --delete dist/ user@server.com:/your/project/path/

Поэтому, если вы можете упаковать и проверить приложение, вы можете развернуть его на своей виртуальной машине.

...