-
Notifications
You must be signed in to change notification settings - Fork 0
123 lines (107 loc) · 5.76 KB
/
deploy.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
name: Deploy to Ubuntu Server
on:
push:
branches:
- main # Запускать workflow при push на ветку main
jobs:
deploy:
runs-on: ubuntu-latest # Использовать последний доступный образ Ubuntu
steps:
- name: Checkout repository
uses: actions/checkout@v2 # Проверить репозиторий на машину сборки
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'temurin' # Установить JDK 17 от Temurin
java-version: '17'
- name: Set environment variables
run: |
echo "DB_URL=${{ secrets.DB_URL }}" >> $GITHUB_ENV
echo "DB_USERNAME=${{ secrets.DB_USERNAME }}" >> $GITHUB_ENV
echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> $GITHUB_ENV
echo "WEATHER_API_KEY=${{ secrets.WEATHER_API_KEY }}" >> $GITHUB_ENV # Установить переменные окружения из секретов GitHub
- name: Debug environment variables
run: printenv # Вывести все переменные окружения для отладки
- name: Build weatherApiService
run: mvn -e -B package --file weatherApiService/pom.xml # Собрать проект Maven, указав путь к pom.xml
- name: List built files for weatherApiService
run: ls -la weatherApiService/target # Показать список файлов в целевой папке после сборки
- name: Deploy weatherApiService to Server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
source: 'weatherApiService/target/weatherApiService-0.0.1-SNAPSHOT.jar' # Указать путь к скомпилированному JAR файлу
target: '/home/xyl1gan4eg/myJavaProjects/weatherProject/weatherApiService' # Указать целевой путь на сервере
port: 22
timeout: 30s
command_timeout: 10m
use_insecure_cipher: false
rm: false
debug: false
strip_components: 0
overwrite: true
tar_dereference: false
tar_exec: tar
proxy_port: 22
proxy_timeout: 30s
proxy_use_insecure_cipher: false # Настройки для scp-action, чтобы копировать файл на удаленный сервер
- name: SSH into server and restart weatherApiService
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
echo "Restarting weatherApiService..."
sudo systemctl stop weather-api-service || true
sudo cp /home/xyl1gan4eg/myJavaProjects/weatherProject/weatherApiService/weatherApiService-0.0.1-SNAPSHOT.jar /opt/weatherApiService/
sudo systemctl start weather-api-service
- name: Build userService
run: mvn -e -B package --file userService/pom.xml # Собрать проект Maven, указав путь к pom.xml
- name: List built files for userService
run: ls -la userService/target # Показать список файлов в целевой папке после сборки
- name: Deploy userService to Server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
source: 'userService/target/userService-0.0.1-SNAPSHOT.jar' # Указать путь к скомпилированному JAR файлу
target: '/home/xyl1gan4eg/myJavaProjects/weatherProject/userService' # Указать целевой путь на сервере
port: 22
timeout: 30s
command_timeout: 10m
use_insecure_cipher: false
rm: false
debug: false
strip_components: 0
overwrite: true
tar_dereference: false
tar_exec: tar
proxy_port: 22
proxy_timeout: 30s
proxy_use_insecure_cipher: false # Настройки для scp-action, чтобы копировать файл на удаленный сервер
- name: SSH into server and restart userService
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
echo "Restarting userService..."
sudo systemctl stop user-service || true
sudo cp /home/xyl1gan4eg/myJavaProjects/weatherProject/userService/userService-0.0.1-SNAPSHOT.jar /opt/userService/
sudo systemctl start user-service
- name: List files on server for debug
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
echo "Listing files in /home/xyl1gan4eg/myJavaProjects/weatherProject/userService/"
ls -la /home/xyl1gan4eg/myJavaProjects/weatherProject/userService/ # Показать список файлов в целевой папке для отладки
echo "Listing files in /home/xyl1gan4eg/myJavaProjects/weatherProject/weatherApiService/"
ls -la /home/xyl1gan4eg/myJavaProjects/weatherProject/weatherApiService/ # Показать список файлов в целевой папке для отладки