mirror of https://gitlab.com/curben/blog
71 lines
2.1 KiB
YAML
71 lines
2.1 KiB
YAML
image: node:alpine # Use latest version of Node.js on Alpine
|
|
|
|
cache: # add cache to 'node_modules' for speeding up builds
|
|
paths:
|
|
- node_modules/ # Node modules and dependencies
|
|
|
|
variables:
|
|
NODE_ENV: "production"
|
|
|
|
## Rename to 'pages' for gitlab pages
|
|
test:
|
|
stage: test
|
|
|
|
before_script:
|
|
- apk update && apk add openssh-client git rsync
|
|
- mkdir -p ~/.ssh
|
|
- chmod 700 ~/.ssh
|
|
- echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
|
|
- chmod 644 ~/.ssh/known_hosts
|
|
- echo "$SSH_KEY_1" > ~/.ssh/id_host_1
|
|
- chmod 600 ~/.ssh/id_host_1
|
|
- echo "$SSH_KEY_2" > ~/.ssh/id_host_2
|
|
- chmod 600 ~/.ssh/id_host_2
|
|
- echo "$SSH_KEY_3" > ~/.ssh/id_host_3
|
|
- chmod 600 ~/.ssh/id_host_3
|
|
- echo "$SSH_CONFIG" > ~/.ssh/config
|
|
- chmod 600 ~/.ssh/config
|
|
- npm install
|
|
|
|
script:
|
|
- npm install snyk && npm run snyk # Refer to "scripts" in package.json
|
|
- npm run build # Generate site
|
|
|
|
after_script:
|
|
- rsync -azvh --delete public/ host-1:/var/www/
|
|
- rsync -azvh --delete public/ host-2:/var/www/
|
|
- rsync -azvh --delete --dry-run public/ host-3:/var/www/
|
|
|
|
rules:
|
|
# Only trigger through push & "Run pipeline" events in master branch; Skip in renovate job
|
|
- if: '$RENOVATE != "true" && $CI_COMMIT_REF_NAME == "master" && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "web")'
|
|
when: always
|
|
|
|
## Uncomment below to enable gitlab pages
|
|
# artifacts:
|
|
# paths:
|
|
# - public # deploy from the 'public' folder.
|
|
|
|
deploy: # Trigger deploy job on curben/curben.gitlab.io
|
|
stage: deploy
|
|
trigger:
|
|
project: curben/curben.gitlab.io
|
|
branch: master
|
|
strategy: depend
|
|
rules:
|
|
- if: '$RENOVATE != "true" && $CI_COMMIT_REF_NAME == "master" && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "web")'
|
|
when: always
|
|
|
|
renovate: # Check dependency update
|
|
before_script:
|
|
- apk update && apk add git
|
|
- npm install
|
|
|
|
script:
|
|
- npm install renovate
|
|
- npm run renovate
|
|
|
|
rules:
|
|
- if: '$RENOVATE == "true" && $CI_COMMIT_REF_NAME == "master" && ($CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "web")'
|
|
when: always
|