|
1 | 1 | name: Build and Deploy |
2 | 2 |
|
3 | 3 | on: |
4 | | - # push: |
5 | | - # branches: |
6 | | - # - main |
| 4 | + push: |
| 5 | + branches: |
| 6 | + - main |
7 | 7 | workflow_dispatch: # 手动触发 |
8 | 8 |
|
9 | 9 | jobs: |
10 | 10 | build-and-deploy: |
11 | 11 | runs-on: ubuntu-latest |
12 | 12 |
|
13 | 13 | steps: |
14 | | - - name: Checkout code |
15 | | - uses: actions/checkout@v3 |
16 | | - |
17 | | - - name: Set up JDK 17 |
18 | | - uses: actions/setup-java@v3 |
19 | | - with: |
20 | | - java-version: '17' |
21 | | - distribution: 'temurin' |
22 | | - |
23 | | - - name: Build with Maven |
24 | | - run: mvn clean package -DskipTests |
25 | | - |
26 | | - - name: Build Docker image |
27 | | - run: docker build -t demo-app:latest . |
28 | | - |
29 | | - - name: Save Docker image |
30 | | - # run: docker save -o demo-app.tar demo-app:latest |
31 | | - run: docker save demo-app:latest | gzip > demo-app.tar.gz |
32 | | - |
33 | | - - name: Install SSH key |
34 | | - uses: shimataro/ssh-key-action@v2 |
35 | | - with: |
36 | | - key: ${{ secrets.SSH_PRIVATE_KEY }} |
37 | | - known_hosts: ${{ secrets.KNOWN_HOSTS }} |
38 | | - |
39 | | - - name: Copy files to server |
40 | | - run: | |
41 | | - scp -P 2222 demo-app.tar.gz root@xujie.i234.me:/data/docker-images/ |
42 | | - scp -P 2222 docker-compose.yml root@xujie.i234.me:/data/projects/spring-boot-template/ |
43 | | - scp -P 2222 backup.sh restore.sh root@xujie.i234.me:/data/projects/spring-boot-template/ && ssh -p 2222 root@xujie.i234.me "chmod +x /data/projects/spring-boot-template/{backup,restore}.sh" |
44 | | - |
45 | | - - name: Load image and restart services |
46 | | - run: | |
47 | | - ssh -p 2222 root@xujie.i234.me << EOF |
48 | | - cd /data/docker-images/ |
49 | | - gzip -d demo-app.tar.gz |
50 | | - docker load -i demo-app.tar |
51 | | - cd /data/projects/spring-boot-template/ |
52 | | - docker-compose down |
53 | | - docker-compose up -d |
54 | | - docker image prune -f # 清理无用镜像 |
55 | | - rm -f vue3-template.tar # 新增清理tar文件 |
56 | | - EOF |
| 14 | + - name: Checkout code |
| 15 | + uses: actions/checkout@v3 |
| 16 | + |
| 17 | + - name: Set up JDK 17 |
| 18 | + uses: actions/setup-java@v3 |
| 19 | + with: |
| 20 | + java-version: "17" |
| 21 | + distribution: "temurin" |
| 22 | + |
| 23 | + - name: Build with Maven |
| 24 | + run: mvn clean package -DskipTests |
| 25 | + |
| 26 | + - name: Build Docker image |
| 27 | + run: docker build -t demo-app:latest . |
| 28 | + |
| 29 | + - name: Save Docker image |
| 30 | + # run: docker save -o demo-app.tar demo-app:latest |
| 31 | + run: docker save demo-app:latest | gzip > demo-app.tar.gz |
| 32 | + |
| 33 | + - name: Install SSH key |
| 34 | + uses: shimataro/ssh-key-action@v2 |
| 35 | + with: |
| 36 | + key: ${{ secrets.SSH_PRIVATE_KEY }} |
| 37 | + known_hosts: ${{ secrets.KNOWN_HOSTS }} |
| 38 | + |
| 39 | + - name: Copy files to server |
| 40 | + run: | |
| 41 | + scp -P 2222 demo-app.tar.gz root@xujie.i234.me:/data/docker-images/ |
| 42 | + scp -P 2222 docker-compose.yml root@xujie.i234.me:/data/projects/spring-boot-template/ |
| 43 | + scp -P 2222 backup.sh restore.sh root@xujie.i234.me:/data/projects/spring-boot-template/ && ssh -p 2222 root@xujie.i234.me "chmod +x /data/projects/spring-boot-template/{backup,restore}.sh" |
| 44 | +
|
| 45 | + - name: Load image and restart services |
| 46 | + run: | |
| 47 | + ssh -p 2222 root@xujie.i234.me << EOF |
| 48 | + cd /data/docker-images/ |
| 49 | + gzip -d demo-app.tar.gz |
| 50 | + docker load -i demo-app.tar |
| 51 | + cd /data/projects/spring-boot-template/ |
| 52 | + docker-compose down |
| 53 | + docker-compose up -d |
| 54 | + docker image prune -f # 清理无用镜像 |
| 55 | + rm -f vue3-template.tar # 新增清理tar文件 |
| 56 | + EOF |
0 commit comments