From 34b9d61006466ff9e4e889af908155313fec9f8b Mon Sep 17 00:00:00 2001 From: PuqiAR Date: Sat, 3 Jan 2026 16:44:42 +0800 Subject: [PATCH] =?UTF-8?q?action!=20=E6=88=91=E4=B8=8D=E8=AE=A4=E8=BE=931?= =?UTF-8?q?0=EF=BC=81=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/build.yml | 65 ++++++++++++++------------------------ 1 file changed, 23 insertions(+), 42 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 77b7a22..a92eed3 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -12,9 +12,9 @@ on: jobs: build-linux-x64: runs-on: ubuntu - # 关键修复1:使用 host 网络模式,容器与宿主机共享网络栈 container: image: ubuntu:22.04 + # 使用host网络模式 options: --network=host steps: @@ -22,48 +22,24 @@ jobs: - name: 安装基础工具 run: | apt-get update - apt-get install -y wget xz-utils tar git + apt-get install -y tar git curl echo "基础工具安装完成。" - # 2. 【关键修复】离线安装xmake (修正版) - - name: 安装xmake + # 2. 离线安装 xmake + - name: 离线安装 xmake run: | - echo "=== 开始安装 xmake ===" + echo "=== 开始从指定链接安装 xmake ===" - # 尝试从系统仓库安装(现在网络通了,应该能访问Ubuntu官方源) - if apt-get install -y xmake 2>/dev/null; then - echo "[成功] 通过系统包管理器安装 xmake。" - else - echo "系统仓库安装失败或版本太旧,尝试下载预编译包..." - # 使用一个已知的、具体的版本号 - INSTALL_VERSION="v2.9.8" - PACKAGE_URL="https://github.com/xmake-io/xmake/releases/download/${INSTALL_VERSION}/xmake-${INSTALL_VERSION}.linux-x86_64.tar.gz" - - echo "尝试从固定地址下载: ${PACKAGE_URL}" - # 设置超时和重试 - if wget -q --timeout=30 --tries=3 -O xmake.tar.gz "${PACKAGE_URL}"; then - echo "[成功] 下载预编译包完成。" - tar -xzf xmake.tar.gz - cd xmake-* 2>/dev/null || cd xmake.* 2>/dev/null - ./install - cd .. - else - echo "[错误] 预编译包下载失败。这通常意味着容器网络(即使是host模式)仍无法访问GitHub。" - echo "最后的保底方案:请将 'xmake-v2.9.8.linux-x86_64.tar.gz' 预先放置在仓库根目录,并取消下方注释。" - # 取消以下4行注释,以启用完全离线的最终方案 - # tar -xzf xmake-v2.9.8.linux-x86_64.tar.gz - # cd xmake-v2.9.8.linux-x86_64 - # ./install - # cd .. - # 如果启用了上方离线方案,请将下一行的 exit 1 注释掉 - exit 1 - fi - fi + # 直接从你提供的 Gitea 仓库链接下载 xmake 二进制文件 + wget -O /usr/local/bin/xmake https://git.fig-lang.cn/PuqiAR/xmake-binary-copy/raw/commit/989d1f2dabb0bc8d5981a5f900c2cf7c2ac78ee4/xmake-bundle-v3.0.5.linux.x86_64 + + # 赋予执行权限 + chmod +x /usr/local/bin/xmake # 验证安装 echo "=== 验证 xmake 安装 ===" - /usr/local/bin/xmake --version || $HOME/.local/bin/xmake --version || xmake --version - echo "=== xmake 安装阶段完成 ===" + /usr/local/bin/xmake --version + echo "=== xmake 安装完成 ===" # 3. 检出代码 - name: 检出代码 @@ -85,8 +61,8 @@ jobs: # 5. 构建项目 - name: 构建项目 run: | - # 确保在PATH中找到xmake - export PATH="$HOME/.local/bin:/usr/local/bin:$PATH" + export PATH="/usr/local/bin:$PATH" + echo "开始构建版本: $VERSION" xmake f -p linux -a x86_64 -m release -y xmake build -j$(nproc) echo "构建成功。" @@ -94,7 +70,7 @@ jobs: # 6. 打包 - name: 打包发布文件 run: | - export PATH="$HOME/.local/bin:/usr/local/bin:$PATH" + export PATH="/usr/local/bin:$PATH" PACKAGE_NAME="Fig-${{ env.VERSION }}-linux-x86_64" mkdir -p "${PACKAGE_NAME}" cp build/linux/x86_64/release/Fig "${PACKAGE_NAME}/" @@ -104,7 +80,7 @@ jobs: fi tar -czf "${PACKAGE_NAME}.tar.gz" "${PACKAGE_NAME}" sha256sum "${PACKAGE_NAME}.tar.gz" > "${PACKAGE_NAME}.sha256" - echo "打包完成。" + echo "打包完成,文件: ${PACKAGE_NAME}.tar.gz" # 7. 发布到Gitea - name: 发布到Gitea @@ -114,16 +90,21 @@ jobs: VERSION="${{ env.VERSION }}" API="https://git.fig-lang.cn/api/v1/repos/${{ github.repository }}" + echo "正在创建版本 $VERSION ..." + + # 创建发布 curl -sS -X POST -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/json" \ - -d "{\"tag_name\":\"$VERSION\",\"name\":\"Fig $VERSION\"}" \ - "$API/releases" 2>/dev/null || true + -d "{\"tag_name\":\"$VERSION\",\"name\":\"Fig $VERSION\",\"draft\":false,\"prerelease\":false}" \ + "$API/releases" + # 上传二进制包 curl -sS -X POST -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/octet-stream" \ --data-binary @Fig-$VERSION-linux-x86_64.tar.gz \ "$API/releases/$VERSION/assets?name=Fig-$VERSION-linux-x86_64.tar.gz" + # 上传校验文件 curl -sS -X POST -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: text/plain" \ --data-binary @Fig-$VERSION-linux-x86_64.sha256 \