gitea-action-test/.github/workflows/BBB.yml
2024-10-28 11:00:32 +08:00

115 lines
4.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Clone Repository with Trojan-Go Proxy
on:
# push:
# branches:
# - main
jobs:
clone_with_proxy:
runs-on: ubuntu-latest
steps:
# 1. 下载并安装 Trojan-Go
- name: 📦 解压并安装 Trojan-Go
run: |
# 下载 Trojan-Go 二进制文件
wget -O trojan-go.zip https://git.aoun.ltd/18152827937/Trojan-GO/raw/commit/ea063e62859270d123379dc69db57f29db2b192f/trojan-go-linux-amd64.zip
unzip trojan-go.zip -d trojan-go
sudo mv trojan-go/trojan-go /usr/local/bin/trojan-go
rm -rf trojan-go.zip trojan-go
# 2. 配置代理参数
- name: 🔧 配置 Trojan-Go 代理
run: |
# 将多行 JSON 配置内容从 Secrets 中写入 trojan-go-config.json 文件
echo "$TROJAN_GO_CONFIG" > trojan-go-config.json
#打印配置文件内容
cat trojan-go-config.json
env:
TROJAN_GO_CONFIG: ${{ secrets.TROJAN_GO_CONFIG }}
# 3. 启动 Trojan-Go 代理
- name: 🔍 启动并保持 Trojan-Go 运行
run: |
nohup trojan-go -config trojan-go-config.json > /tmp/trojan-go.log 2>&1 & disown
sleep 5 # 等待代理启动
# 检查 Trojan-Go 是否在运行
if pgrep -x "trojan-go" > /dev/null
then
echo "Trojan-Go 已成功启动并在运行中。"
else
echo "启动失败,检查日志文件 /tmp/trojan-go.log 以获取更多信息。" && cat /tmp/trojan-go.log && exit 1
fi
# 4. 使用代理克隆仓库
- name: 🚀 使用代理克隆仓库
env:
REPO_URL: https://github.com/coolsnowwolf/lede
REPO_BRANCH: master
ALL_PROXY: "socks5://127.0.0.1:1080"
run: |
echo "检查代理设置:$ALL_PROXY"
echo "开始尝试克隆仓库..."
# 尝试多次克隆仓库,直到成功
n=1
max_retries=5
while [ "$n" -le "$max_retries" ]
do
echo "正在尝试第 $n 次克隆仓库..."
git clone --depth 1 "$REPO_URL" -b "$REPO_BRANCH" && break
echo "第 $n 次克隆失败将在5秒后重试..."
n=$((n+1))
sleep 5
done
# 检查克隆是否成功
if [ "$n" -gt "$max_retries" ]; then
echo "克隆仓库失败,请检查网络或代理设置。"
exit 1
else
echo "仓库克隆成功!"
fi
# 1. 不使用代理的步骤
- name: 🌐 Step without Proxy
run: |
echo "Checking IP without proxy:"
# 使用 curl 检查 IP 地址, 如果请求失败则输出提示信息,提示可能是因为没有代理
curl -s https://httpbin.org/ip || echo "Request failed, likely due to no proxy."
# 2. 使用代理的步骤
- name: 🌐 Step with Proxy
env:
ALL_PROXY: "socks5://127.0.0.1:1080"
run: |
echo "Checking IP with proxy:"
# 使用 --socks5 明确指定代理模式
curl --socks5 127.0.0.1:1080 -s https://httpbin.org/ip || echo "Request failed, even with proxy."
- name: 🌐 Step with Proxy (using ALL_PROXY only)
env:
ALL_PROXY: "socks5://127.0.0.1:1080"
run: |
echo "Checking IP with proxy using ALL_PROXY:"
curl -s https://httpbin.org/ip || echo "Request failed, even with proxy."
- name: 🌐 Step with Proxy (using curl with debug)
env:
ALL_PROXY: "socks5://127.0.0.1:1080"
run: |
echo "Checking IP with proxy using curl:"
curl -s --max-time 10 https://httpbin.org/ip || echo "Request failed, even with proxy."
# 最后一步:验证 Trojan-Go 代理是否还在运行
- name: 🔍 验证代理是否在运行
run: |
echo "Checking if Trojan-Go proxy is still running..."
if pgrep -x "trojan-go" > /dev/null
then
echo "Trojan-Go 仍在运行。"
else
echo "Trojan-Go 已停止运行,检查 /tmp/trojan-go.log 以获取更多信息。"
[ -f /tmp/trojan-go.log ] && cat /tmp/trojan-go.log || echo "日志文件不存在。"
exit 1
fi