From 4f37760688b7ef226b2006229c1b15a23b22892d Mon Sep 17 00:00:00 2001 From: egamorf76 Date: Sun, 27 Apr 2025 22:40:33 +0200 Subject: [PATCH 1/7] Update build and add deploy pipeline --- .gitea/workflows/build-pr.yaml | 44 +++++++++------- .gitea/workflows/deploy.yaml | 92 ++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+), 19 deletions(-) create mode 100644 .gitea/workflows/deploy.yaml diff --git a/.gitea/workflows/build-pr.yaml b/.gitea/workflows/build-pr.yaml index abfb2f3..c26acc3 100644 --- a/.gitea/workflows/build-pr.yaml +++ b/.gitea/workflows/build-pr.yaml @@ -1,25 +1,31 @@ name: Game Ideas build for PR on: - pull_request: - types: [ opened, edited, reopened, synchronize ] - branches: - - 'feature/**' - - main + pull_request: + types: [ opened, edited, reopened, synchronize ] + branches: + - 'feature/**' + - main jobs: - build_blazor_app: - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@v4 + build_blazor_app: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 - - name: Setup DotNet - uses: actions/setup-dotnet@v4 - with: - dotnet-version: '9' + - name: Setup .NET 9 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '9.0.x' - - name: Build Blazor App - run: dotnet build ./src/GameIdeas/Client/GameIdeas.BlazorApp/GameIdeas.BlazorApp.csproj - - - name: Build API App - run: dotnet build ./src/GameIdeas/Server/GameIdeas.WebAPI/GameIdeas.WebAPI.csproj \ No newline at end of file + - name: Restore dependencies + run: dotnet restore + + - name: Build API + run: dotnet build ./src/GameIdeas/Server/GameIdeas.WebAPI/GameIdeas.WebAPI.csproj --configuration Release + + - name: Build Blazor App + run: dotnet build ./src/GameIdeas/Client/GameIdeas.BlazorApp/GameIdeas.BlazorApp.csproj --configuration Release + + - name: Test API + run: dotnet test ./src/GameIdeas/Server/GameIdeas.WebAPI.Tests/GameIdeas.WebAPI.Tests.csproj --configuration Release \ No newline at end of file diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml new file mode 100644 index 0000000..097d530 --- /dev/null +++ b/.gitea/workflows/deploy.yaml @@ -0,0 +1,92 @@ +name: Game Ideas deploy + +on: + push: + branches: [main] # Déclenchement sur push sur main + workflow_dispatch: # Lancer manuellement + +jobs: + build-test-deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup .NET 9 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '9.0.x' + + - name: Restore dependencies + run: dotnet restore + + - name: Build API + run: dotnet build ./src/GameIdeas/Server/GameIdeas.WebAPI/GameIdeas.WebAPI.csproj --configuration Release + + - name: Build Blazor App + run: dotnet build ./src/GameIdeas/Client/GameIdeas.BlazorApp/GameIdeas.BlazorApp.csproj --configuration Release + + - name: Test API + run: dotnet test ./src/GameIdeas/Server/GameIdeas.WebAPI.Tests/GameIdeas.WebAPI.Tests.csproj --configuration Release + + - name: Publish API + run: dotnet publish ./src/GameIdeas/Server/GameIdeas.WebAPI/GameIdeas.WebAPI.csproj --configuration Release --output ./publish/api + + - name: Publish Blazor App + run: dotnet publish ./src/GameIdeas/Client/GameIdeas.BlazorApp/GameIdeas.BlazorApp.csproj --configuration Release --output ./publish/blazor + + - name: Copy API to Server + uses: appleboy/scp-action@v1 + with: + host: ${{ secrets.DEV_HOST }} + username: ${{ secrets.DEV_USERNAME }} + password: ${{ secrets.DEV_PASSWORD }} + port: ${{ secrets.DEV_PORT }} + source: "./publish/api/*" + target: "/home/gameideas/api" + + - name: Copy Blazor App to Server + uses: appleboy/scp-action@v1 + with: + host: ${{ secrets.DEV_HOST }} + username: ${{ secrets.DEV_USERNAME }} + password: ${{ secrets.DEV_PASSWORD }} + port: ${{ secrets.DEV_PORT }} + source: "./publish/blazor/*" + target: "/home/gameideas/blazor" + + - name: Update Entity Framework API on server + uses: appleboy/ssh-action@v1 + with: + host: ${{ secrets.DEV_HOST }} + username: ${{ secrets.DEV_USERNAME }} + password: ${{ secrets.DEV_PASSWORD }} + port: ${{ secrets.DEV_PORT }} + script: | + cd /home/gameideas/api + dotnet ef database update --no-build + + - name: Start API on server + uses: appleboy/ssh-action@v1 + with: + host: ${{ secrets.DEV_HOST }} + username: ${{ secrets.DEV_USERNAME }} + password: ${{ secrets.DEV_PASSWORD }} + port: ${{ secrets.DEV_PORT }} + script: | + pkill -f "GameIdeas.WebAPI" || true + cd /home/gameideas/api + nohup dotnet GameIdeas.WebAPI.dll > api.log 2>&1 & + + - name: Start Blazor App on server + uses: appleboy/ssh-action@v1 + with: + host: ${{ secrets.DEV_HOST }} + username: ${{ secrets.DEV_USERNAME }} + password: ${{ secrets.DEV_PASSWORD }} + port: ${{ secrets.DEV_PORT }} + script: | + pkill -f "GameIdeas.BlazorApp" || true + cd /home/gameideas/blazor + nohup dotnet GameIdeas.BlazorApp.dll > blazor.log 2>&1 & \ No newline at end of file -- 2.39.5 From eba9dfa4cf327ac1e02df7caf44fa05a3a81c27e Mon Sep 17 00:00:00 2001 From: egamorf76 Date: Sun, 27 Apr 2025 22:42:12 +0200 Subject: [PATCH 2/7] fix restore dependency --- .gitea/workflows/deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 097d530..e1e3427 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -19,7 +19,7 @@ jobs: dotnet-version: '9.0.x' - name: Restore dependencies - run: dotnet restore + run: dotnet restore ./src/GamesIdeas - name: Build API run: dotnet build ./src/GameIdeas/Server/GameIdeas.WebAPI/GameIdeas.WebAPI.csproj --configuration Release -- 2.39.5 From f006dd5b4cbe9e4e9fd96e6af27e7cd2b7fed6d3 Mon Sep 17 00:00:00 2001 From: egamorf76 Date: Sun, 27 Apr 2025 22:43:18 +0200 Subject: [PATCH 3/7] fix path --- .gitea/workflows/deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index e1e3427..eb1f343 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -19,7 +19,7 @@ jobs: dotnet-version: '9.0.x' - name: Restore dependencies - run: dotnet restore ./src/GamesIdeas + run: dotnet restore ./src/GameIdeas/GameIdeas.sln - name: Build API run: dotnet build ./src/GameIdeas/Server/GameIdeas.WebAPI/GameIdeas.WebAPI.csproj --configuration Release -- 2.39.5 From 9aba2e48ea862bf8bf56f4f39059a118b021446a Mon Sep 17 00:00:00 2001 From: egamorf76 Date: Sun, 27 Apr 2025 22:44:55 +0200 Subject: [PATCH 4/7] fix restore --- .gitea/workflows/deploy.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index eb1f343..1fa3acd 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -18,8 +18,11 @@ jobs: with: dotnet-version: '9.0.x' - - name: Restore dependencies - run: dotnet restore ./src/GameIdeas/GameIdeas.sln + - name: Restore API dependencies + run: dotnet restore ./src/GameIdeas/Server/GameIdeas.WebAPI/GameIdeas.WebAPI.csproj + + - name: Restore Blazor App dependencies + run: dotnet restore ./src/GameIdeas/Client/GameIdeas.BlazorApp/GameIdeas.BlazorApp.csproj - name: Build API run: dotnet build ./src/GameIdeas/Server/GameIdeas.WebAPI/GameIdeas.WebAPI.csproj --configuration Release -- 2.39.5 From 13b20903d75fb8b1ba32bac7083c7c4c57368a5e Mon Sep 17 00:00:00 2001 From: egamorf76 Date: Sun, 27 Apr 2025 22:46:19 +0200 Subject: [PATCH 5/7] correct for both workflow --- .gitea/workflows/build-pr.yaml | 2 +- .gitea/workflows/deploy.yaml | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/build-pr.yaml b/.gitea/workflows/build-pr.yaml index c26acc3..c0f584c 100644 --- a/.gitea/workflows/build-pr.yaml +++ b/.gitea/workflows/build-pr.yaml @@ -19,7 +19,7 @@ jobs: dotnet-version: '9.0.x' - name: Restore dependencies - run: dotnet restore + run: dotnet restore ./src/GameIdeas/GameIdeas.sln - name: Build API run: dotnet build ./src/GameIdeas/Server/GameIdeas.WebAPI/GameIdeas.WebAPI.csproj --configuration Release diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 1fa3acd..eb1f343 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -18,11 +18,8 @@ jobs: with: dotnet-version: '9.0.x' - - name: Restore API dependencies - run: dotnet restore ./src/GameIdeas/Server/GameIdeas.WebAPI/GameIdeas.WebAPI.csproj - - - name: Restore Blazor App dependencies - run: dotnet restore ./src/GameIdeas/Client/GameIdeas.BlazorApp/GameIdeas.BlazorApp.csproj + - name: Restore dependencies + run: dotnet restore ./src/GameIdeas/GameIdeas.sln - name: Build API run: dotnet build ./src/GameIdeas/Server/GameIdeas.WebAPI/GameIdeas.WebAPI.csproj --configuration Release -- 2.39.5 From 844228ae4d42cc6b47e374582f780f4848161092 Mon Sep 17 00:00:00 2001 From: egamorf76 Date: Sun, 27 Apr 2025 23:28:21 +0200 Subject: [PATCH 6/7] correct fix branch --- .gitea/workflows/build-pr.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitea/workflows/build-pr.yaml b/.gitea/workflows/build-pr.yaml index c0f584c..3a236d7 100644 --- a/.gitea/workflows/build-pr.yaml +++ b/.gitea/workflows/build-pr.yaml @@ -4,7 +4,6 @@ on: types: [ opened, edited, reopened, synchronize ] branches: - 'feature/**' - - main jobs: build_blazor_app: -- 2.39.5 From 8592ecf0f04982c4090dd6bbeafed95bc77e3e13 Mon Sep 17 00:00:00 2001 From: egamorf76 Date: Sun, 27 Apr 2025 23:28:50 +0200 Subject: [PATCH 7/7] restore branch --- .gitea/workflows/build-pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build-pr.yaml b/.gitea/workflows/build-pr.yaml index 3a236d7..f5700dd 100644 --- a/.gitea/workflows/build-pr.yaml +++ b/.gitea/workflows/build-pr.yaml @@ -3,7 +3,7 @@ on: pull_request: types: [ opened, edited, reopened, synchronize ] branches: - - 'feature/**' + - main jobs: build_blazor_app: -- 2.39.5