Repository navigation
69 lines (67 loc) · 3.16 KB
/
Copy pathdeploy.yml
File metadata and controls
69 lines (67 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
name: Tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
if: github.event_name == 'push'
runs-on: ubuntu-latest
env:
DO_TOKEN: ${{ secrets.DO_TOKEN }}
PRODUCTION_SETTINGS_FILE: ./src/Web.Api/appsettings.Production.json
steps:
- uses: actions/checkout@v4
- name: Docker build and push
run: |
echo ${{env.PRODUCTION_SETTINGS_FILE}}
echo ${{secrets.OAUTH_JWT_SECRET}}
sed -i "s|__OAUTH_JWT_SECRET|${{ secrets.OAUTH_JWT_SECRET }}|g" ${{env.PRODUCTION_SETTINGS_FILE}}
sed -i 's/"__GOOGLE_CLIENT_ID",/"${{ secrets.GOOGLE_CLIENT_ID }}",/g' ${{env.PRODUCTION_SETTINGS_FILE}}
sed -i 's/"__GOOGLE_CLIENT_SECRET",/"${{ secrets.GOOGLE_CLIENT_SECRET }}",/g' ${{env.PRODUCTION_SETTINGS_FILE}}
sed -i 's/"__AUTH_GITHUB_CLIENT_ID",/"${{ secrets.AUTH_GITHUB_CLIENT_ID }}",/g' ${{env.PRODUCTION_SETTINGS_FILE}}
sed -i 's/"__AUTH_GITHUB_CLIENT_SECRET",/"${{ secrets.AUTH_GITHUB_CLIENT_SECRET }}",/g' ${{env.PRODUCTION_SETTINGS_FILE}}
sed -i 's/"__DATABASE_CONNECTION_STRING",/"${{ vars.DATABASE_CONNECTION_STRING }}",/g' ${{env.PRODUCTION_SETTINGS_FILE}}
sed -i 's/"__RESEND_COM_API_KEY",/"${{ secrets.RESEND_COM_API_KEY }}",/g' ${{env.PRODUCTION_SETTINGS_FILE}}
sed -i 's/"__OPEN_AI_SECRET",/"${{ secrets.OPEN_AI_SECRET }}",/g' ${{env.PRODUCTION_SETTINGS_FILE}}
sed -i "s|__TELEGRAM_WEBHOOK_SECRET_TOKEN|${{ secrets.TELEGRAM_WEBHOOK_SECRET_TOKEN }}|g" ${{env.PRODUCTION_SETTINGS_FILE}}
sed -i "s|__CLAUDE_API_KEY|${{ secrets.CLAUDE_API_KEY }}|g" ${{env.PRODUCTION_SETTINGS_FILE}}
sed -i "s|__OPENAI_API_KEY|${{ secrets.OPENAI_API_KEY }}|g" ${{env.PRODUCTION_SETTINGS_FILE}}
cd src
docker login -u ${{ env.DO_TOKEN }} -p ${{ env.DO_TOKEN }} registry.digitalocean.com/techinterview
docker build -f Dockerfile -t ${{ secrets.CR }}/backend:${{ github.sha }} .
docker push ${{ secrets.CR }}/backend:${{ github.sha }}
deploy-ssh:
if: github.event_name == 'push'
env:
DO_TOKEN: ${{ secrets.DO_TOKEN }}
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Deploy ssh
run: |
sed -i "s,{api},${{ secrets.CR }}/backend:${{ github.sha }},g" docker-compose.deploy.yml
- name: copy file via ssh key
uses: appleboy/scp-action@v1
with:
host: ${{ secrets.IP }}
username: devops
key: ${{ secrets.SSH_KEY_PRIVATE }}
port: ${{ secrets.PORT }}
source: "docker-compose.deploy.yml"
target: "/home/devops/deploy"
- name: Execute commands
uses: appleboy/ssh-action@v1.2.2
with:
host: ${{ secrets.IP }}
username: devops
key: ${{ secrets.SSH_KEY_PRIVATE }}
port: ${{ secrets.PORT }}
script_stop: true
script: |
cd ~/deploy
docker login -u ${{ env.DO_TOKEN }} -p ${{ env.DO_TOKEN }} registry.digitalocean.com/techinterview
docker-compose -f docker-compose.deploy.yml pull
docker-compose -f docker-compose.deploy.yml up -d