Firq
7922f2c617
Now using rsync and a ssh_config file for connecting, cleaning up everything Next time use a feature branch so the commits can be squashed easier! small fix 2 test small fix 3 apk fix rsync ssh fix script fix script fix 2 script fix 3 script fix 4 stackoverflow fix explicit ssh key maybe this fix? aaa maybe this debug debug 2 debug 3 now? order is important people persm ??? spaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaace one last change? home tilde bad now?! know what to change final different file structure test, progress minifying output
80 lines
2.1 KiB
YAML
80 lines
2.1 KiB
YAML
stages:
|
|
- build
|
|
- deploy
|
|
- notification
|
|
|
|
build-site:
|
|
image: node:lts
|
|
stage: build
|
|
cache:
|
|
paths:
|
|
- node_modules/
|
|
only:
|
|
- main
|
|
script:
|
|
- npm install
|
|
- npm run build
|
|
- rm -r public/assets/data/
|
|
- cp serve.json public
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
expire_in: 1 day
|
|
|
|
deploy-site:
|
|
stage: deploy
|
|
only:
|
|
- main
|
|
before_script:
|
|
- 'which rsync || ( apk update && apk add rsync )'
|
|
- 'which ssh-agent || ( apk update && apk add openssh-client)'
|
|
- eval $(ssh-agent -s)
|
|
- mkdir -p ~/.ssh
|
|
- chmod 700 ~/.ssh
|
|
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' >> ~/.ssh/key_firq
|
|
- chmod 600 ~/.ssh/key_firq
|
|
- echo "Host $DEPLOY_HOST" >> ~/.ssh/config
|
|
- echo $'\n\tIdentityFile ~/.ssh/key_firq' >> ~/.ssh/config
|
|
- echo $'\n\tStrictHostKeyChecking no\n\tIdentitiesOnly yes\n' >> ~/.ssh/config
|
|
- chmod 644 ~/.ssh/config
|
|
- echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
|
|
- chmod 644 ~/.ssh/known_hosts
|
|
- echo "SSH setup completed"
|
|
|
|
script:
|
|
- echo "Getting artifacts"
|
|
- ls public
|
|
- echo "Stopping screen session and cleaning"
|
|
- ssh $DEPLOY_USER@$DEPLOY_HOST "screen -X -S website-firq-npx kill; rm -r -f public/*;"
|
|
- echo "Copying to proxmox machine"
|
|
- rsync -az --stats public $DEPLOY_USER@$DEPLOY_HOST:~/.
|
|
- echo "Restarting screen session"
|
|
- ssh $DEPLOY_USER@$DEPLOY_HOST "screen -S website-firq-npx -dm npx serve public/ -p 9000 -c serve.json"
|
|
- echo "Website is up on https://firq.dev/"
|
|
|
|
success_notification:
|
|
stage: notification
|
|
before_script:
|
|
- apk update
|
|
- apk add rsync
|
|
- apk add curl
|
|
- apk add git
|
|
- apk add bash
|
|
script:
|
|
- wget https://raw.githubusercontent.com/DiscordHooks/gitlab-ci-discord-webhook/master/send.sh
|
|
- chmod +x send.sh
|
|
- ./send.sh success $WEBHOOK_URL
|
|
when: on_success
|
|
failure_notification:
|
|
stage: notification
|
|
before_script:
|
|
- apk update
|
|
- apk add curl
|
|
- apk add git
|
|
- apk add bash
|
|
script:
|
|
- wget https://raw.githubusercontent.com/DiscordHooks/gitlab-ci-discord-webhook/master/send.sh
|
|
- chmod +x send.sh
|
|
- ./send.sh failure $WEBHOOK_URL
|
|
when: on_failure
|