47 lines
1.1 KiB
YAML
47 lines
1.1 KiB
YAML
image: node:latest
|
|
|
|
stages:
|
|
- build
|
|
- deploy
|
|
|
|
cache:
|
|
paths:
|
|
- node_modules/
|
|
|
|
before_script:
|
|
- apt-get update -y && apt-get upgrade -y
|
|
|
|
build:
|
|
stage: build
|
|
script:
|
|
- npm install
|
|
- echo "REACT_APP_CLIENT_ID = $REACT_APP_CLIENT_ID" >> .env.production
|
|
- npm run build
|
|
artifacts:
|
|
paths:
|
|
- build/
|
|
|
|
deploy:
|
|
stage: deploy
|
|
script:
|
|
## Install ssh-agent if not already installed
|
|
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client git -y )'
|
|
|
|
## Run ssh-agent (inside the build environment)
|
|
- eval $(ssh-agent -s)
|
|
|
|
## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
|
|
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
|
|
|
## Create the SSH directory and give it the right permissions
|
|
- mkdir -p ~/.ssh
|
|
- chmod 700 ~/.ssh
|
|
|
|
## Use ssh-keyscan to scan the keys of the private server
|
|
- ssh-keyscan "$REMOTE_HOST" >> ~/.ssh/known_hosts
|
|
- chmod 644 ~/.ssh/known_hosts
|
|
|
|
## Sync the project to the deploy route
|
|
- apt-get install rsync -y
|
|
- rsync -rvz build/ "$DEPLOY_ROUTE" --delete
|