Skip to content

Commit

Permalink
Add reusable workflow for setting up SSH agent
Browse files Browse the repository at this point in the history
  • Loading branch information
p3k committed Jun 1, 2024
1 parent 048cdc3 commit e15a52e
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 32 deletions.
29 changes: 29 additions & 0 deletions .github/actions/ssh/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Set up SSH agent
description: Set up the SSH agent
author: Tobi Schäfer <tobi@antville.org>

inputs:
config:
description: The SSH configuration
required: true
key:
description: The private SSH key
required: true
known-hosts:
description: The list of known hosts
required: true

runs:
using: composite

steps:
- name: Set up SSH agent
shell: bash
run: |
socket=/tmp/ssh-agent.sock
echo "SSH_AUTH_SOCKET=$socket" >> $GITHUB_ENV
ssh-agent -a $socket > /dev/null
ssh-add - <<< '${{ inputs.key }}'
mkdir -p ~/.ssh
echo '${{ inputs.config }}' > ~/.ssh/config
echo '${{ inputs.known-hosts }}' > ~/.ssh/known_hosts
43 changes: 11 additions & 32 deletions .github/workflows/stage.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
name: Deploy (Staging)

on:
workflow_dispatch

env:
SSH_AUTH_SOCK: /tmp/ssh-agent.sock
workflow_dispatch: {}
push:
branches:
- helma-🐜

jobs:
stage:
Expand All @@ -17,34 +17,13 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v3

- name: Build with Gradle
run: ./gradlew installDist

- name: Set up SSH agent
run: |
ssh-agent -a $SSH_AUTH_SOCK > /dev/null
ssh-add - <<< "${{ secrets.SSH_PRIVATE_KEY }}"
mkdir -p ~/.ssh
echo '${{ vars.SSH_CONFIG }}' > ~/.ssh/config
echo '${{ vars.KNOWN_HOSTS }}' > ~/.ssh/known_hosts
uses: ./.github/actions/ssh
with:
config: ${{ vars.SSH_CONFIG }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
known-hosts: ${{ vars.SSH_KNOWN_HOSTS }}

- name: Publish to staging server
- name: Test
run: |
rsync build/install/helma/ antville.dev:/ \
--verbose --archive --delete --compress \
--filter 'protect /lib/ext' \
--filter '+ /launcher.jar' \
--filter '+ /lib' \
--filter '- /*' \
- name: Restart Helma
run: ssh antville.dev restart
echo $SSH_AUTH_SOCK

0 comments on commit e15a52e

Please sign in to comment.