Skip to content

Commit

Permalink
Create deployment script for website (#78)
Browse files Browse the repository at this point in the history
  • Loading branch information
Zifah authored Aug 7, 2024
1 parent 6331396 commit e0b8a09
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 3 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/api-deploy-staging.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Deploy to EC2 staging
name: Deploy API to EC2 staging

on:
push:
Expand All @@ -23,7 +23,7 @@ jobs:
- name: Build project
run: dotnet publish Api -c Release -o out

- name: Deploy to EC2
- name: Deploy API to EC2
env:
SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_KEY }}
EC2_INSTANCE_IP: ${{ vars.EC2_INSTANCE_IP}}
Expand All @@ -45,7 +45,7 @@ jobs:
sudo systemctl status $SERVICE_NAME --no-pager
exit 1
else
echo 'Service was restarted successfully.'
echo 'API was restarted successfully after deployment.'
fi
"
shell: bash
51 changes: 51 additions & 0 deletions .github/workflows/website-deploy-staging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Deploy website to EC2 staging

on:
push:
branches:
- main

jobs:
deploy:
if: github.repository_owner == 'Yorubaname'
runs-on: ubuntu-latest
environment: staging

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up .NET
uses: actions/setup-dotnet@v2
with:
dotnet-version: '8.0.x'

- name: Build project
run: dotnet publish Website -c Release -o out

- name: Deploy website to EC2
env:
SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_KEY }}
EC2_INSTANCE_IP: ${{ vars.EC2_INSTANCE_IP}}
SERVICE_NAME: ${{ vars.WEBSITE_SERVICE_NAME }}
SERVICE_PATH: ${{ vars.WEBSITE_SERVICE_PATH }}
run: |
echo "$SSH_PRIVATE_KEY" > private_key
chmod 600 private_key
rsync -avz --exclude 'appsettings.json' -e "ssh -i private_key -o StrictHostKeyChecking=no" out/ ec2-user@$EC2_INSTANCE_IP:$SERVICE_PATH
ssh -i private_key -o StrictHostKeyChecking=no ec2-user@$EC2_INSTANCE_IP "
sudo systemctl restart $SERVICE_NAME
sleep 3
STATUS=\$(sudo systemctl is-active $SERVICE_NAME)
echo \"The service $SERVICE_NAME is currently \$STATUS\"
if [ -z \$STATUS ]; then
echo 'Service status is empty or not defined'
exit 1
elif [ \$STATUS != 'active' ]; then
sudo systemctl status $SERVICE_NAME --no-pager
exit 1
else
echo 'Website was restarted successfully after deployment.'
fi
"
shell: bash

0 comments on commit e0b8a09

Please sign in to comment.