GitHub Workflow下载tj-actions/changed-files@v23.1报SSL连接失败
GitHub Workflow拉取tj-actions/changed-files报SSL连接错误排查
问题描述
配置GitHub Workflow实现变更文件检测时,工作流运行阶段无法下载tj-actions/changed-files@v23.1,两次重试后直接终止。
对应工作流配置如下:
test: runs-on: ubuntu-latest name: Test changed-files steps: - uses: actions/checkout@v2 with: fetch-depth: 0 # 也可设置为2,仅拉取前序提交记录 - name: Get changed file id: changed-files uses: tj-actions/changed-files@v23.1 - name: List all changed files run: | for file in ${{ steps.changed-files.outputs.all_changed_files }}; do echo "$file was changed" done
运行时抛出的核心报错:
警告:下载Action 'https://api.github.com/repos/tj-actions/changed-files/tarball/34a865a2b221bd60ec0d4c071f5e7a66ffdac88a'失败。错误:无法建立SSL连接,请查看内部异常。
警告:重试前将退避等待26.677秒。
警告:下载Action 'https://api.github.com/repos/tj-actions/changed-files/tarball/34a865a2b221bd60ec0d4c071f5e7a66ffdac88a'失败。错误:无法建立SSL连接,请查看内部异常。
警告:重试前将退避等待21.73秒。
错误:无法建立SSL连接,请查看内部异常。
核心诱因
- 网络链路拦截:如果使用自建运行器,出口防火墙、透明代理设备拦截了GitHub API的HTTPS请求,SSL握手阶段被中间设备截断,无法完成连接建立;如果使用GitHub官方托管运行器,多为节点临时网络波动导致握手失败。
- 版本兼容问题:使用的
actions/checkout@v2和tj-actions/changed-files@v23.1均为发布时间较早的旧版本,新版Ubuntu运行器内置的OpenSSL、根证书库和旧版本Action的拉取逻辑存在兼容性冲突。 - 仓库策略限制:仓库或所属组织配置了自定义Action拉取镜像源、访问白名单规则,镜像源SSL证书失效、未同步对应版本Action资源时,会触发SSL连接错误。
修复方案
按以下优先级排查处理:
- 先排除临时波动问题:直接重新触发工作流运行,官方托管运行器的偶发网络异常通常重试1-2次即可恢复。
- 升级依赖版本:将旧版本Action替换为当前稳定版本,消除兼容性问题,参考配置如下:
test: runs-on: ubuntu-latest name: Test changed-files steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get changed file id: changed-files uses: tj-actions/changed-files@v41 - name: List all changed files run: | for file in ${{ steps.changed-files.outputs.all_changed_files }}; do echo "$file was changed" done - 排查网络连通性:如果是自建运行器,在拉取Action前增加临时调试步骤,执行
curl -v https://api.github.com/repos/tj-actions/changed-files/tarball/34a865a2b221bd60ec0d4c071f5e7a66ffdac88a查看SSL握手失败的具体阶段:- 如果提示证书不受信,执行
apt update && apt install -y ca-certificates更新系统根证书库 - 如果提示连接超时、被重置,放通运行器出口对GitHub相关域名的防火墙规则,或配置可用的HTTPS代理
- 如果提示证书不受信,执行
- 检查Action权限配置:进入仓库Settings > Actions > General页面,确认Action访问权限允许拉取第三方公开Action,没有配置失效的自定义镜像拉取地址。如果是组织级策略限制,联系管理员放通对应Action的访问权限。
内容的提问来源于stack exchange,提问作者aamir khan
相关产品推荐
相关产品推荐

