Node 8 container with rsync, python and ssh support
- Create file
.gitlab-ci.yml, e.g.:
image: kirbownz/node8-rsync-python-ssh###### STAGES #################################################################stages:
- install
- test
- build
- deploy###### TEMPLATES ##############################################################.general: &generalvariables:
GIT_STRATEGY: fetchvariables:
# Docker in Docker variablesDOCKER_HOST: "tcp://docker:2375"###### JOBS ###################################################################install:
<<: *generalstage: installartifacts:
paths:
- node_modulesexpire_in: 1 dayscript:
- rm yarn.lock
- yarntest:
<<: *generalstage: testdependencies:
- installscript:
- yarn testbuild:
<<: *generalstage: builddependencies:
- installartifacts:
paths:
- buildexpire_in: 1 weekscript:
- yarn builddeployment:
<<: *generalstage: deploydependencies:
- buildscript:
- mkdir -p ~/.ssh
- echo "${ssh_key}" > ~/.ssh/id_rsa
- chmod 700 ~/.ssh
- chmod 600 ~/.ssh/id_rsa
- echo "${gitconfig}" > ~/.gitconfig
- ssh-keyscan -t rsa ${demo_host} >> ~/.ssh/known_hosts
- rsync build/ ${demo_user}@${demo_host}:${demo_path} --delete-after -r -v- Add the variables above in GitLab -> Project -> Settings -> CI / CD -> Variables:
| Type | Key | Value | Protected | Masked | Scope |
|---|---|---|---|---|---|
| Variable | demo_host | example.com | - | - | All environments |
| Variable | demo_path | ~/project/dist/ | - | - | All environments |
| Variable | demo_user | user | - | - | All environments |
| Variable | gitconfig | [user]name = Firstname Lastnameemail = email@me.com | - | - | All environments |
| Variable | ssh_key | -----BEGIN RSA... | - | - | All environments |