breakpoint

namespacelabs/breakpoint-action is a GitHub action that allows you to pause the execution of a workflow, enter a live SSH session, debug the environment and finally resume the run when you are done.

Note: Workflows that have active breakpoint sessions are still running and continue to count towards your total CI usage.

Example

jobs:
  go-tests:
    runs-on: ubuntu-latest
 
    steps:
      - name: Checkout
        uses: actions/checkout@v4
 
      - name: Run Go tests
        run: |
          go test ./...
 
      - name: Breakpoint if tests failed
        if: failure()
        uses: namespacelabs/breakpoint-action@v0
        with:
          duration: 30m
          authorized-users: jack123, alice321

When the above breakpoint runs, you'll see a log message like the following:

┌───────────────────────────────────────────────────────────────────────────┐
                                                                           
 Breakpoint running until 2023-05-24T16:06:48+02:00 (29 minutes from now). 
                                                                           
 Connect with: ssh -p 40812 runner@rendezvous.namespace.so                 
                                                                           
└───────────────────────────────────────────────────────────────────────────┘

The SSH service in breakpoint only accepts sessions from public SSH keys configured by GitHub users, listed by authorized-users.

And there you have it, an SSH session to connect to debug your workflow.

Check out the actions GitHub page for a more detailed documentation.

Options

duration

string The initial breakpoint duration. Default: 30m

authorized-users

string A comma-separated list of authorized GitHub users.

authorized-keys

string A comma-separated list of authorized SSH keys.

slack-announce-channel

string A Slack channel where webhook sends notifications.