Deploy Vue.js build with Gitlab CI

Viewed 1204

This is my gitlab pipeline. The Vue.js artifacts are build on the runner. How can I deploy the to my testserver? FYI: Fab pull does a git pull on the repo.

deploy_staging:
  image: python:3.6
  stage: deploy
  only:
    - master
  before_script:
    - curl -sL https://deb.nodesource.com/setup_13.x | bash -
    - apt-get update -y
    - apt-get install -y curl git gnupg nodejs
    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
    - eval $(ssh-agent -s)
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - |
      cat >~/.ssh/config <<EOF
      Host testserver
          ForwardAgent yes
          HostName dev.testserver.ts
          User testuser
      EOF
    - cat ~/.ssh/config
  script:
    - pip install -r requirements.txt
    - npm install
    - npm run production
    - fab pull
1 Answers

Since you want to copy files from GitLab runner into your server, This will be possible using scp command. For example:

⋮
 script:
    - pip install -r requirements.txt
    - npm install
    - npm run production
    - scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no /PATH/TO/BUILD_ARTIFACTS testserver:~/PATH/TO/DESTINATION
    - fab pull

UserKnownHostsFile and StrictHostKeyChecking are SSH options that prevent error Host key verification failed. So they should be used with scp command in your case.
Also, destination path of artifact files must be started from testuser's home directory (Tilde character ~). Otherwise you may face Permission denied error.

Related