build: add deploy to server
Some checks failed
.NET Test Pipeline / build-and-test (push) Failing after 0s
Build and Deploy Docker Container / build_and_deploy (push) Failing after 38s

This commit is contained in:
Polianin Nikita 2024-07-02 23:24:28 +03:00
parent 9abdb1ac43
commit 8c340e2a97
4 changed files with 63 additions and 0 deletions

View File

@ -0,0 +1,48 @@
name: Build and Deploy Docker Container
on:
push:
branches:
[master, 'release/*']
jobs:
build_and_deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
run: echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
- name: Build and push Docker image
run: |
docker build --build-arg NUGET_USERNAME=${{ secrets.NUGET_USERNAME }} --build-arg NUGET_PASSWORD=${{ secrets.NUGET_PASSWORD }} -t ${{ secrets.DOCKER_USERNAME }}/your-app-name:latest .
docker push ${{ secrets.DOCKER_USERNAME }}/your-app-name:latest
- name: Start ssh-agent
id: ssh-agent
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Deploy to Server
env:
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_USER: ${{ secrets.SSH_USER }}
DOCKER_IMAGE: ${{ secrets.DOCKER_USERNAME }}/mirea-bakend:latest
run: |
ssh-keyscan $SSH_HOST >> ~/.ssh/known_hosts
ssh $SSH_USER@$SSH_HOST "
docker pull $DOCKER_IMAGE &&
docker stop mirea-bakend || true &&
docker rm mirea-bakend || true &&
docker run -d --name mirea-bakend -p 8085:8080 $DOCKER_IMAGE
"
- name: Remove all keys from ssh-agent
run: ssh-add -D

View File

@ -11,6 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set up .NET Core - name: Set up .NET Core

View File

@ -12,6 +12,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Elements of the solution",
.gitattributes = .gitattributes .gitattributes = .gitattributes
.gitignore = .gitignore .gitignore = .gitignore
Dockerfile = Dockerfile Dockerfile = Dockerfile
.gitea\workflows\deploy.yaml = .gitea\workflows\deploy.yaml
LICENSE.txt = LICENSE.txt LICENSE.txt = LICENSE.txt
README.md = README.md README.md = README.md
.gitea\workflows\test.yaml = .gitea\workflows\test.yaml .gitea\workflows\test.yaml = .gitea\workflows\test.yaml

13
nuget.config Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="winsomnia.net" value="https://git.winsomnia.net/api/packages/Winsomnia/nuget/index.json" />
</packageSources>
<packageSourceCredentials>
<winsomnia.net>
<add key="Username" value="%NUGET_USERNAME%" />
<add key="ClearTextPassword" value="%NUGET_PASSWORD%" />
</winsomnia.net>
</packageSourceCredentials>
</configuration>