From 1395ef2febfaa6ecde80ac4b981bd9ec87ab9ed5 Mon Sep 17 00:00:00 2001 From: Ember Date: Thu, 30 Jan 2025 01:49:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8git=20checkout=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/buildsite.yaml | 55 ++++++++++++++------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/.gitea/workflows/buildsite.yaml b/.gitea/workflows/buildsite.yaml index 63c9c07..c17cb8c 100644 --- a/.gitea/workflows/buildsite.yaml +++ b/.gitea/workflows/buildsite.yaml @@ -11,45 +11,36 @@ jobs: - name: Prepare workspace shell: bash run: | - # 设置本地仓库路径(根据实际路径调整) + WORKSPACE="/tmp/gitea_workflow_$(date +%s)" LOCAL_REPO="/opt/gitea/data/gitea-repositories/ember/front.git" - WORKSPACE="/tmp/gitea_workflow" - # 创建临时工作区 - mkdir -p $WORKSPACE - cd $WORKSPACE - - # 克隆本地仓库(使用bare repo) - git clone $LOCAL_REPO . - - - name: Get changed files - id: changed-files - shell: bash - run: | - cd /tmp/gitea_workflow - - # 处理首次提交的情况 - if git rev-parse HEAD^ >/dev/null 2>&1; then - git diff --name-only HEAD^ HEAD > changed_files.txt - else - git ls-files > changed_files.txt + # 清理旧目录 + if [ -d "$WORKSPACE" ]; then + rm -rf "$WORKSPACE" fi - # 生成绝对路径文件列表 - sed -i "s|^|$WORKSPACE/|" changed_files.txt - echo "CHANGED_FILES=/tmp/gitea_workflow/changed_files.txt" >> $GITHUB_ENV + mkdir -p "$WORKSPACE" + git clone --bare "$LOCAL_REPO" "$WORKSPACE/repo" + echo "WORKSPACE=$WORKSPACE" >> $GITHUB_ENV + + - name: Analyze changes + shell: bash + run: | + cd "$WORKSPACE/repo" + if [ $(git rev-list --count HEAD) -gt 1 ]; then + git diff --name-only HEAD^ HEAD > "$WORKSPACE/changed_files.txt" + else + git ls-tree -r HEAD --name-only > "$WORKSPACE/changed_files.txt" + fi - name: Sync changes shell: bash run: | - # 创建目标目录 - sudo mkdir -p /www/wwwroot/front/public - - # 带权限同步(使用sudo保留权限) - sudo rsync -av --chown=www-data:www-data \ - --files-from=$CHANGED_FILES \ - /tmp/gitea_workflow/ \ + # 同步文件 + rsync -av --chmod=D2775,F664 \ + --files-from="$WORKSPACE/changed_files.txt" \ + "$WORKSPACE/repo/" \ /www/wwwroot/front/public/ - # 清理临时文件 - rm -rf /tmp/gitea_workflow \ No newline at end of file + # 确保清理工作区 + rm -rf "$WORKSPACE" \ No newline at end of file