Two types of proxies are supported:
- ngrok
- frp
-
Set up your
Ngrok Authtoken
as secrets in your repository settings usingNGROK_TOKEN
. -
Add the following to your workflow
- uses: shaowenchen/debugger-action@v2
name: debugger
timeout-minutes: 30
continue-on-error: true
with:
ngrok_token: ${{ secrets.NGROK_TOKEN }}
- Run your workflow and login the runner
In the log of GitHub Actions, find localhost:8000 and you can see that:
t=2021-01-19T03:57:10+0000 lvl=info msg="started tunnel" obj=tunnels name=command_line addr=//localhost:8000 url=tcp://2.tcp.ngrok.io:16400
ssh root@2.tcp.ngrok.io -p 16400
Input RootPassword: root
- Debugger the runner
$ ls
factory
key.pem
perflog
runners
warmup
work
runners
is the working directory of workflow
Required Authenticate to ngrok agent.
x in [1, 2, 3] , e.g:
- uses: shaowenchen/debugger-action@v2
name: debugger
timeout-minutes: 30
continue-on-error: true
with:
ngrok_token: ${{ secrets.NGROK_TOKEN }}
ngrok_addr_1: 30000
ngrok_proto_1: tcp
ngrok_addr_2: 30001
ngrok_proto_2: tcp
ngrok_addr_3: 30002
ngrok_proto_3: tcp
It will expose these services to Ngrok. The maximum number of tunnels is 3, and http will take up 2 .
- Set up your credentials as secrets in your repository settings using
FRP_SERVER_ADDR
,FRP_SERVER_PORT
,FRP_TOKEN
,SSH_PORT
Secrets | Frp Server |
---|---|
FRP_SERVER_ADDR |
You Server IP |
FRP_SERVER_PORT |
Bind port |
FRP_TOKEN |
token |
SSH_PORT
is used to login the runner, a custom set , e.g 20090 .
- Add the following to your workflow
- uses: shaowenchen/debugger-action@v2
name: debugger
timeout-minutes: 30
continue-on-error: true
with:
frp_server_addr: ${{ secrets.FRP_SERVER_ADDR }}
frp_server_port: ${{ secrets.FRP_SERVER_PORT }}
frp_token: ${{ secrets.FRP_TOKEN }}
ssh_port: ${{ secrets.SSH_PORT }}
- Run your workflow and login the runner
Each runner needs a unique ssh_port
value.
ssh root@frp_server_addr -p ssh_port
Input RootPassword: root
- Debugger the runner
$ ls
factory
key.pem
perflog
runners
warmup
work
runners
is the working directory of workflow
The length of time you want to debug the action.
Required IP address of the remote frps server.
Required Port of the remote frps server.
Required Token of the remote frps server.
Required Port to login the runner