Skip to content

Commit 6dfb678

Browse files
committed
ci: rosti deploy bun
1 parent a57cde6 commit 6dfb678

1 file changed

Lines changed: 88 additions & 0 deletions

File tree

.github/workflows/rosti_deploy.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# .github/workflows/rosti_deploy.yml
2+
3+
name: Deploy into Roští.cz
4+
5+
on:
6+
push:
7+
branches: [master]
8+
9+
jobs:
10+
deploy:
11+
runs-on: ubuntu-latest
12+
env:
13+
HOST: ssh.rosti.cz
14+
USER: app
15+
PORT: 13988
16+
NODE_VERSION: 22.9.0
17+
steps:
18+
- uses: actions/checkout@v3
19+
- uses: actions/setup-node@v3
20+
with:
21+
node-version: "v22.9.0"
22+
- uses: webfactory/ssh-agent@v0.8.0
23+
with:
24+
ssh-private-key: ${{ secrets.ROSTI_DEPLOY_SSH_KEY }}
25+
- name: Setup hostkey
26+
run: |
27+
echo "ssh.rosti.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC10qlAxK0IswmJsHhfu6fGJ/ZYXb6S5Ff5N4/ioFXW3rX2c6YLxyYx1HalD7Ji+Fl4sGmr5ayuEJTjgKzgwZ1xv6ql7MxgWkKI/Gc/SneMtxkls08i6s7B9PV+MjcWLWx6Qoj524D8dWSyss1UdxTan7B2wWOUVjZVreICHms6vwK2yHZwgUn3/+n200+iLl4LuC2oURL4nld9FrI8ukezz6VA3nrJHnvdZBjHKfLg+p3GFMIsBFSvVADcXbDxsI6/Sxwfwea68ce7XzJUwztjhPmjGrNXgGAjsag35ZrSy2+Hp7TQwcnox3d2OphdLR6HseFMgHSj4NKM3AZWhzyz" > ./known_hosts
28+
- name: env
29+
run: |
30+
cat << EOF > .env
31+
${{ secrets.ENV }}
32+
EOF
33+
- name: Dependencies
34+
run: |
35+
npm install
36+
- name: Build
37+
run: |
38+
npm run build
39+
- name: Setup Node.js
40+
run: |
41+
ssh -o UserKnownHostsFile=./known_hosts -p $PORT $USER@$HOST /usr/local/bin/rosti node $NODE_VERSION
42+
- name: Setup Supervisord
43+
run: |
44+
cat << EOF > rosti.app.conf
45+
[program:app]
46+
command=/srv/bin/primary_tech/npm start
47+
environment=PATH="/srv/bin/primary_tech:/usr/local/bin:/usr/bin:/bin:/srv/.npm-packages/bin"
48+
stopasgroup=true
49+
directory=/srv/app
50+
process_name=app
51+
autostart=true
52+
autorestart=true
53+
stdout_logfile=/srv/log/node.log
54+
stdout_logfile_maxbytes=2MB
55+
stdout_logfile_backups=5
56+
stdout_capture_maxbytes=2MB
57+
stdout_events_enabled=false
58+
redirect_stderr=true
59+
EOF
60+
scp -o UserKnownHostsFile=./known_hosts -P $PORT rosti.app.conf $USER@$HOST:/srv/conf/supervisor.d/app.conf
61+
rm rosti.app.conf
62+
- name: Setup Nginx
63+
run: |
64+
cat << EOF > rosti.nginx.conf
65+
server {
66+
listen 0.0.0.0:8000;
67+
listen [::]:8000;
68+
location / {
69+
proxy_pass http://127.0.0.1:8080/;
70+
proxy_redirect default;
71+
proxy_set_header X-Real-IP \$remote_addr;
72+
proxy_set_header Host \$host;
73+
}
74+
location /static/ {
75+
alias /srv/app/public/;
76+
}
77+
}
78+
EOF
79+
scp -o UserKnownHostsFile=./known_hosts -P $PORT rosti.nginx.conf $USER@$HOST:/srv/conf/nginx.d/app.conf
80+
rm rosti.nginx.conf
81+
- name: Copy code
82+
run: |
83+
rsync -ae "ssh -o UserKnownHostsFile=./known_hosts -p $PORT" --delete-after --exclude=.git ./ $USER@$HOST:/srv/app/
84+
- name: Apply changes
85+
run: |
86+
ssh -o UserKnownHostsFile=./known_hosts -p $PORT $USER@$HOST supervisorctl reread
87+
ssh -o UserKnownHostsFile=./known_hosts -p $PORT $USER@$HOST supervisorctl restart app
88+
ssh -o UserKnownHostsFile=./known_hosts -p $PORT $USER@$HOST supervisorctl restart nginx

0 commit comments

Comments
 (0)