image: node:latest cache: paths: - node_modules/ - dist/ stages: - build - deploy - configure - restart build: stage: build tags: - production - shell script: - npm install - ./node_modules/.bin/tsc deploy: stage: deploy tags: - production - shell script: - sudo rm -rf /var/www/broadcaster - sudo mkdir -p /var/www/broadcaster/node_modules - sudo cp dist/server/server.js /var/www/broadcaster - sudo cp node_modules/. -R /var/www/broadcaster/node_modules/. - sudo chown http:http -R /var/www/broadcaster configure: stage: configure tags: - production - shell script: - cat srvconfig/nginx.conf | sed -e 's/{domain}/broadcaster.adlerneves.com/g' -e 's/{port}/18961/g' | sudo tee /etc/nginx/sites-available/broadcaster-adlerneves-com-http.conf > /dev/null - cat srvconfig/nginx.conf | sed -e 's/{domain}/broadcaster.sfner.com/g' -e 's/{port}/18961/g' | sudo tee /etc/nginx/sites-available/broadcaster-sfner-com-http.conf > /dev/null - cat srvconfig/systemd.service | sed -e 's/{name}/broadcaster/g' -e 's/{port}/18961/g' | sudo tee /etc/systemd/system/ws-broadcaster.service > /dev/null restart: stage: restart tags: - production - shell script: - sudo systemctl daemon-reload - sudo systemctl reload nginx - sudo systemctl enable ws-broadcaster.service - sudo systemctl restart ws-broadcaster.service