Skip to content

Deploy to EC2

Deploy to EC2 #3

Workflow file for this run

name: Deploy to EC2
on:
pull_request:
types: [closed] # Trigger on pull request closure
workflow_run:
workflows: ["Build and Test"]
types:
- completed
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request' && github.event.action == 'closed'
steps:
- name: Set up SSH Key
run: |
echo "${{ secrets.DEV_KEY_PAIR }}" >> SpringKeyPair.pem
chmod 400 SpringKeyPair.pem
- name: List files
run: ls -R
- name: Download JAR Artifact
uses: actions/download-artifact@v3
with:
name: springrolls
path: .
- name: Deploying to EC2
if: github.event.pull_request.merged == true
run: |
echo "Copying jar to EC2 Instance..."
scp -i "SpringKeyPair.pem" -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no target/springrolls-0.0.1-SNAPSHOT.jar ${{ secrets.DEV_INSTANCE_IP }}:${{ secrets.TARGET_DIR }}
echo "Jar Copied successfully!!!"
echo "Attempting logging to machine..."
# SSH into the EC2 instance and restart the application
ssh -i "SpringKeyPair.pem" -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ${{ secrets.DEV_INSTANCE_IP }} <<EOF
echo "Switching to application directory"
cd springrolls
echo "Stopping the existing application"
pkill -f "java -jar springrolls-0.0.1-SNAPSHOT.jar"
echo "Start the new version of the application"
nohup java -jar springrolls-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &
echo "Application Started!!!"
exit
EOF