Skip to content

Commit 6acf448

Browse files
authored
Merge pull request #184 from AndrewCS149/testWorkflow
testWorkflow
2 parents aa42e9c + 80805f3 commit 6acf448

File tree

3 files changed

+78
-37
lines changed

3 files changed

+78
-37
lines changed

.github/workflows/staging.yml

+72-14
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ on:
1010
- staging
1111

1212
jobs:
13-
deploy-to-staging:
14-
name: Deploy to Staging
13+
deploy-client:
14+
name: Deploy Client
1515
runs-on: ubuntu-latest
1616
environment: staging
17-
steps:
17+
steps:
1818
- name: Cache Trunk
1919
uses: actions/cache@v3
2020
with:
@@ -38,6 +38,41 @@ jobs:
3838
run: trunk build --release
3939
working-directory: client
4040

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+
4176
- name: Set up .NET
4277
uses: actions/setup-dotnet@v1
4378
with:
@@ -52,29 +87,52 @@ jobs:
5287
- name: Publish application
5388
run: dotnet publish ./server/devblog.csproj -c Release -o ./app/publish /p:UseAppHost=false
5489

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:
55120
- name: Create SSH Key
56121
run: |
57122
mkdir -p ${{ secrets.SSH_PRIVATE_KEY_PATH }}
58123
echo "${{ secrets.SSH_PRIVATE_KEY_CONTENT }}" > ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }}
59124
sudo chmod 600 ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }}
60125
shell: bash
61-
126+
62127
- name: Add Host Key to known_hosts
63128
run: ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ${{ secrets.SSH_PRIVATE_KEY_PATH }}/known_hosts
64129

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-
73130
- name: Restart Container
74131
run: |
75132
ssh -i ${{ secrets.SSH_PRIVATE_KEY_PATH }}/${{ secrets.SSH_PRIVATE_KEY_NAME }} ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "\
76133
cd ${{ secrets.DEVBLOG_ROOT_PATH }} && \
77134
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 && \
79136
docker compose up -d"
80-
137+
138+

docker-compose.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,8 @@ services:
2929
image: ${DEVBLOG_SERVER_CONTAINER_NAME}
3030
build: ./server
3131
container_name: ${DEVBLOG_SERVER_CONTAINER_NAME}
32+
volumes:
33+
- ${SERVER_PUBLISH_VOLUME}
34+
- ${SERVER_HTTPS_VOLUME}
3235
ports:
33-
- ${SERVER_PORTS}
36+
- ${SERVER_PORTS}

server/Dockerfile

+2-22
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,3 @@
1-
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
2-
3-
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
4-
USER app
5-
WORKDIR /app
6-
COPY ./https ./https
7-
8-
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
9-
ARG BUILD_CONFIGURATION=Release
10-
COPY ["devblog.csproj", "app/"]
11-
RUN dotnet restore "./app/devblog.csproj"
12-
COPY . app/
13-
WORKDIR "/app"
14-
RUN dotnet build "./devblog.csproj" -c $BUILD_CONFIGURATION -o /app/build
15-
16-
FROM build AS publish
17-
ARG BUILD_CONFIGURATION=Release
18-
RUN dotnet publish "./devblog.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
19-
20-
FROM base AS final
21-
WORKDIR /app
22-
COPY --from=publish /app/publish .
1+
FROM mcr.microsoft.com/dotnet/aspnet:8.0
2+
WORKDIR /app/publish
233
ENTRYPOINT ["dotnet", "devblog.dll"]

0 commit comments

Comments
 (0)