KhoPhi
KhoPhi

Reputation: 9517

Github actions scp into VPS via ssh only

This is currently my workflow

name: CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - uses: actions/setup-node@v1
      with:
        node-version: '10.x'
    - run: npm install
    - run: npm install -g @angular/cli > /dev/null
    - run: ng build --prod
    - run: scp -o StrictHostKeyChecking=no -r ./dist/pwa/* [email protected]://home/user/domain.com/pwa

The above is roughly a translation of what I have on CircleCI. However, obviously the above fails.

CircleCI allowed adding 'SSH Permissions' to a project, so as during setting up build to run, it attaches that to the environment, thus making any ssh commands to the VPS easy.

How can I accomplish a similar approach in Github? Github Actions supports SSH Permissions? If not, is there a workaround?

How do you folks copy files from your workflow builds to an external server via ssh (i.e scp)?

Upvotes: 1

Views: 1677

Answers (1)

Michael
Michael

Reputation: 12011

This is what I do, after adding the SSH key to github secrets:

run: |
  mkdir -p ~/.ssh
  echo "${{ secrets.SSH_KEY }}" > ~/.ssh/id_rsa
  chmod 700 ~/.ssh/id_rsa
  ssh-keyscan -H domain.com >> ~/.ssh/known_hosts
  scp -o StrictHostKeyChecking=no -r ./dist/pwa/* [email protected]://home/user/domain.com/pwa

Upvotes: 3

Related Questions