Skip to content

Instantly share code, notes, and snippets.

@raviagheda
Last active July 1, 2024 15:32
Show Gist options
  • Save raviagheda/c69ae5e884f4490b1af656dbd80c00dd to your computer and use it in GitHub Desktop.
Save raviagheda/c69ae5e884f4490b1af656dbd80c00dd to your computer and use it in GitHub Desktop.
Github Action with EC2 using SSH

Github Action with EC2 using SSH

Check this out on Dev.to

Configure SSH into aws ec2

Declare these git secrets

  • SSH_PRIVATE_KEY
  • HOST_NAME / IP_ADDRESS
  • USER_NAME
name: Deploy

on:
  push:
    branches: [ dev ]

jobs:
  Deploy:
    name: Deploy to EC2
    runs-on: ubuntu-latest
    
    steps:
      - uses: actions/checkout@v2 
      - name: Build & Deploy
        env:
            PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
            HOSTNAME: ${{secrets.SSH_HOST}}
            USER_NAME: ${{secrets.USER_NAME}}
      
        run: |
          echo "$PRIVATE_KEY" > private_key && chmod 600 private_key
          ssh -o StrictHostKeyChecking=no -i private_key ${USER_NAME}@${HOSTNAME} '

              # Now we have got the access of EC2 and we will start the deploy .
              cd /home/ubuntu/<PROJECT_DIRECTORY> &&
              git checkout dev &&
              git fetch --all &&
              git reset --hard origin/dev &&
              git pull origin dev &&
              sudo npm i &&
              sudo npm run build &&
              sudo pm2 stop ./dist/index.js &&
              sudo pm2 start ./dist/index.js
              '
@claudiokerekes
Copy link

claudiokerekes commented Jun 4, 2024

LAST EDIT: FORGET IT, SECRET KEY TYPO

THANKS


Warning: Permanently added '***' (ED25519) to the list of known hosts.
Load key "private_key": error in libcrypto
@: Permission denied (publickey).

any sugestions??

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: create key
env:
PRIVATE_KEY: ${{ secrets.SSH_KEY }}
run: |
echo "$PRIVATE_KEY" > private_key && chmod 600 private_key
- name: SSH and deploy
env:
HOSTNAME: ${{secrets.HOST}}
USER_NAME: ${{secrets.USER}}
run: |
ssh -o StrictHostKeyChecking=no -i private_key ${USER_NAME}@${HOSTNAME} '

        # Now we have got the access of EC2 and we will start the deploy .
        cd /home/ubuntu/inads-backend &&
        git checkout main &&
        git fetch --all &&
        git pull origin main &&
        docker-compose build &&
        docker-compose up -d
        '

@Estanip
Copy link

Estanip commented Jun 11, 2024

Hi @raviagheda, Thanks for your input! Works fine! Could the git pull be unnecessary using git reset before?

@Estanip
Copy link

Estanip commented Jun 11, 2024

Run echo "$PRIVATE_KEY" > private_key && chmod 600 private_key Warning: Permanently added '' (ED25519) to the list of known hosts. _@*_: Permission denied (publickey).
how to handle private repositories?

I'm also facing the same

Try this: https://docs.gitlab.com/ee/ci/ssh_keys/#troubleshooting

@kiranjeetuix
Copy link

kiranjeetuix commented Jun 28, 2024

Run echo "$PRIVATE_KEY" > private_key && chmod 600 private_key Warning: Permanently added '' (ED25519) to the list of known hosts. _@*_: Permission denied (publickey).
how to handle private repositories?

I'm also facing the same

How did you resolved it?

@Estanip
Copy link

Estanip commented Jun 28, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment