通过tmate 来 SSH 连接到 GitHub Actions


GitHub Actions 是gythub 提供的免费的持续集成服务,大部分人的个人项目都是放在github上,那么使用它来发布、测试、部署,是非常方便的。并且GitHub Actions会为开发者提供一个以下配置的服务器做为 runner,可以说相当的良心。

  • 2-core CPU
  • 7 GB of RAM memory
  • 14 GB of SSD disk space

但是GitHub Ac­tions 本身是不允许直接连接进行交互式操作,但有好事的开发者竟然另辟蹊径通过安装 tmate 来实现了 SSH 连接,并且制作了相关的 ac­tion 。这使得我们可以非常容易连接到 Ac­tions 的虚拟环境中,相当于免费获得了 20 台 E5 2vCPU/​7G RAM/​90G SSD 配置的 VPS 。


我闲的蛋疼没事做,也去测试了一下,下面把方法分享大伙。

食用方法:

1.任意fork下面两个仓库中的一个的地址到自己的仓库
fork到自己仓库

2.到自己仓库的项目Actions创建工作流
goto-Actions

set-newwork
3.创建一个新的工作流,并替换对应的demo文件,然后提交
edit-workflows

4.等待开始工作
wait-work

5.开始工作
working

6.安装tmate
我这里以Ubuntu为例

sudo apt-get install tmate

执行安装指令:
安装tmate

7.在操作日志中找到如下位置的ssh命令:
ssh-key

ssh命令

  1. 在Ubuntu终端执行链接到GitHub Actions服务器

    ssh xxxxxxxxxxx@nyc1.tmate.io

9.SSH命令连接到GitHub Actions
ssh

最后

10.注意:将ssh命令复制到您的终端中以创建正在运行的实例的ssh连接。在关闭与正在运行的实例的ssh连接之后,该会话将立即关闭。15分钟后会出现全局超时。这将关闭所有打开的ssh会话。
要防止会话终止,请运行:

touch /tmp/keepalive

github仓库地址

一、csexton/debugger-action

替换 work­flow 文件:

name: Ubuntu
on: [push]
jobs:
  Ubuntu:
    runs-on: ubuntu-latest
    steps:
    - name: Setup Debug Session
      uses: csexton/debugger-action@master

二、mxschmitt/action-tmate

替换 work­flow 文件:

name: CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: Setup tmate session
      uses: mxschmitt/action-tmate@v1

本文参考于:Vedio Talk - GITHUB | SSH 连接到 GitHub Actions (https://www.vediotalk.com/archives/6704)