10
10
- staging
11
11
12
12
jobs :
13
- deploy-to-staging :
14
- name : Deploy to Staging
13
+ deploy-client :
14
+ name : Deploy Client
15
15
runs-on : ubuntu-latest
16
16
environment : staging
17
- steps :
17
+ steps :
18
18
- name : Cache Trunk
19
19
uses : actions/cache@v3
20
20
with :
38
38
run : trunk build --release
39
39
working-directory : client
40
40
41
+ - name : Copy Files to Server
42
+ run : |
43
+ scp -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} -r client/dist ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEVBLOG_ROOT_PATH }}/client
44
+ scp -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} client/Dockerfile ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEVBLOG_ROOT_PATH }}/client
45
+
46
+
47
+
48
+ deploy-server :
49
+ name : Deploy Server
50
+ runs-on : ubuntu-latest
51
+ environment : staging
52
+ steps :
53
+ # - name: Cache Trunk
54
+ # uses: actions/cache@v3
55
+ # with:
56
+ # path: ~/.cargo
57
+ # key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
58
+ # restore-keys: |
59
+ # ${{ runner.os }}-cargo-
60
+
61
+ # - uses: actions/checkout@v3
62
+ # - name: Set up Rust
63
+ # uses: dtolnay/rust-toolchain@stable
64
+ # with:
65
+ # targets: wasm32-unknown-unknown
66
+ # toolchain: stable
67
+
68
+ # - name: Install Trunk
69
+ # run: cargo install trunk
70
+ # # if: steps.cache.outputs.cache-hit != 'true'
71
+
72
+ # - name: Build with Trunk
73
+ # run: trunk build --release
74
+ # working-directory: client
75
+
41
76
- name : Set up .NET
42
77
uses : actions/setup-dotnet@v1
43
78
with :
@@ -52,29 +87,52 @@ jobs:
52
87
- name : Publish application
53
88
run : dotnet publish ./server/devblog.csproj -c Release -o ./app/publish /p:UseAppHost=false
54
89
90
+ # - name: Create SSH Key
91
+ # run: |
92
+ # mkdir -p ${{ secrets.SSH_PRIVATE_KEY_PATH }}
93
+ # echo "${{ secrets.SSH_PRIVATE_KEY_CONTENT }}" > ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }}
94
+ # sudo chmod 600 ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }}
95
+ # shell: bash
96
+
97
+ # - name: Add Host Key to known_hosts
98
+ # run: ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ${{ secrets.SSH_PRIVATE_KEY_PATH }}/known_hosts
99
+
100
+ - name : Copy Files to Server
101
+ run : |
102
+ scp -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} docker-compose.yml ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEVBLOG_ROOT_PATH }}
103
+ scp -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} server/Dockerfile ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEVBLOG_ROOT_PATH }}/server
104
+ scp -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} -r ./app/publish ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEVBLOG_ROOT_PATH }}/server/publish
105
+
106
+ # - name: Restart Container
107
+ # run: |
108
+ # ssh -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "\
109
+ # cd ${{ secrets.DEVBLOG_ROOT_PATH }} && \
110
+ # docker container rm -f ${{ secrets.DEVBLOG_CLIENT_CONTAINER }} || true && \
111
+ # docker container rm -f ${{ secrets.DEVBLOG_SERVER_CONTAINER }}
112
+ # docker compose up -d"
113
+
114
+ restart-containers :
115
+ name : Restart Containers
116
+ needs : [deploy-server, deploy-client]
117
+ runs-on : ubuntu-latest
118
+ environment : staging
119
+ steps :
55
120
- name : Create SSH Key
56
121
run : |
57
122
mkdir -p ${{ secrets.SSH_PRIVATE_KEY_PATH }}
58
123
echo "${{ secrets.SSH_PRIVATE_KEY_CONTENT }}" > ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }}
59
124
sudo chmod 600 ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }}
60
125
shell : bash
61
-
126
+
62
127
- name : Add Host Key to known_hosts
63
128
run : ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ${{ secrets.SSH_PRIVATE_KEY_PATH }}/known_hosts
64
129
65
- - name : Copy Files to Server
66
- run : |
67
- scp -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} -r client/dist ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEVBLOG_ROOT_PATH }}/client
68
- scp -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} docker-compose.yml ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEVBLOG_ROOT_PATH }}
69
- scp -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} client/Dockerfile ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEVBLOG_ROOT_PATH }}/client
70
- scp -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} server/Dockerfile ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEVBLOG_ROOT_PATH }}/server
71
- scp -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} -r ./app/publish ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEVBLOG_ROOT_PATH }}/server/publish
72
-
73
130
- name : Restart Container
74
131
run : |
75
132
ssh -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "\
76
133
cd ${{ secrets.DEVBLOG_ROOT_PATH }} && \
77
134
docker container rm -f ${{ secrets.DEVBLOG_CLIENT_CONTAINER }} || true && \
78
- docker container rm -f ${{ secrets.DEVBLOG_SERVER_CONTAINER }}
135
+ docker container rm -f ${{ secrets.DEVBLOG_SERVER_CONTAINER }} || true && \
79
136
docker compose up -d"
80
-
137
+
138
+
0 commit comments