You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.6 KiB
54 lines
1.6 KiB
name: Build and Deploy to Server
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
|
|
jobs:
|
|
build-and-deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Build backend image
|
|
run: |
|
|
cd backend
|
|
docker build -t hetianci/studyingspace-backend:TEST .
|
|
|
|
- name: Build frontend image
|
|
run: |
|
|
cd frontend
|
|
docker build -t hetianci/studyingspace-frontend:TEST .
|
|
|
|
- name: Save backend image to tar
|
|
run: |
|
|
docker save -o studyingspace-backend.tar hetianci/studyingspace-backend:TEST
|
|
|
|
- name: Save frontend image to tar
|
|
run: |
|
|
docker save -o studyingspace-frontend.tar hetianci/studyingspace-frontend:TEST
|
|
|
|
- name: Copy images to server
|
|
uses: appleboy/scp-action@v0.1.4
|
|
with:
|
|
host: ${{ secrets.SERVER_HOST }}
|
|
username: ${{ secrets.SERVER_USER }}
|
|
key: ${{ secrets.SERVER_SSH_PRIVATE_KEY }}
|
|
source: "studyingspace-backend.tar,studyingspace-frontend.tar"
|
|
target: "my_project/StudyingSpace/"
|
|
|
|
- name: Deploy to server
|
|
uses: appleboy/ssh-action@v1.0.3
|
|
with:
|
|
host: ${{ secrets.SERVER_HOST }}
|
|
username: ${{ secrets.SERVER_USER }}
|
|
key: ${{ secrets.SERVER_SSH_PRIVATE_KEY }}
|
|
script: |
|
|
cd my_project/StudyingSpace
|
|
git pull
|
|
docker load -i studyingspace-backend.tar
|
|
docker load -i studyingspace-frontend.tar
|
|
docker compose up -d
|
|
rm -f studyingspace-backend.tar studyingspace-frontend.tar
|