github-runner docs: How to debug with ssh

How to debug with ssh

The charm exposes an integration debug-ssh interface which can be used with tmate-ssh-server charm to pre-configure runners with environment variables to be picked up by action-tmate for automatic configuration.

Requirements

To enhance the security of self-hosted runners and its infrastructure, only authorized connections can be established. Hence, action-tmate users must have ssh-key registered on the GitHub account.

Deploying

Use the following command to deploy and integrate github-runner with tmate-ssh-server.

juju deploy tmate-ssh-server
juju integrate tmate-ssh-server github-runner

Idle runners will be flushed and restarted. Busy runners will be configured automatically on next spawn.

Using the action

Create a workflow that looks like the following within your workflow to enable action-tmate.

name: SSH Debug workflow example

on: [pull_request]

jobs:
  build:
    runs-on: [self-hosted]
    steps:
    - uses: actions/checkout@v3
    - name: Setup tmate session
      uses: canonical/action-tmate@main

The output of the action looks like the following.

<workflow setup logs redacted>
SSH: ssh -p 10022 <user>@<ip>
or: ssh -i <path-to-private-SSH-key> -p10022 <user>@<ip>

Read more about action-tmate’s usage here.