diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e0b81da4..6a437532 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,47 +1,74 @@ -name: Build +# 定义工作流名称 +name: 编译 PCL +# 定义触发器 on: + # 提交内容修改代码或编辑工作流时 push: paths: - 'Plain Craft Launcher 2/**' - '.github/workflows/**' + # 新的PR修改代码或编辑工作流时 pull_request: paths: - 'Plain Craft Launcher 2/**' - '.github/workflows/**' + # 手动触发时 + workflow_dispatch: +# 定义工作列表 jobs: + # 唯一的工作:build build: - - strategy: + strategy: + # 定义矩阵,矩阵中每组都会单独执行,并使矩阵本身成为可用的上下文 matrix: + # 五个编译选项 configuration: [Debug, Release, Snapshot, BETA, ReleaseUpdate] + # 显然,只有Windows才能构建.NET Framework程序 runs-on: windows-latest + # 定义步骤列表 steps: - - name: Checkout + + - name: 签出仓库 + # 调用actions/checkout仓库的调用预设工作流 uses: actions/checkout@v4 + # 调用参数 with: + # 只签出第一层 fetch-depth: 0 - - name: Set Describe + - name: 导出提交描述 shell: bash run: | Describe=`git describe --tags` echo "Describe=$Describe" >> $GITHUB_ENV + continue-on-error: true + + # 在极少数情况下,可能没有可用的提交描述。详见 https://github.com/Silverteal/PCL2/actions/runs/9518525229/job/26239628548 + - name: 导出备用描述 + shell: bash + run: | + echo "Describe=unknown" >> $GITHUB_ENV + if: ${{ failure() }} - - name: Setup MSBuild.exe + - name: 配置 MSBuild uses: microsoft/setup-msbuild@v2 with: + # 生成工具使用64位架构 msbuild-architecture: x64 - - name: Build + - name: 编译源代码 run: msbuild "Plain Craft Launcher 2\Plain Craft Launcher 2.vbproj" -p:Configuration=${{ matrix.configuration }} - - name: Upload a Build Artifact + - name: 打包并上传编译产物 uses: actions/upload-artifact@v4 with: - name: ${{ matrix.configuration }} ${{ env.Describe }} + # 文件名格式示例:pcl2-autobuild-2.7.4-37-a0b1c2d3-Snapshot.zip + # 其中2.7.4是仓库最新tag,37是自上一个标签的提交数,a0b1c2d3是最后一次提交哈希 + name: pcl2-autobuild-${{ env.Describe }}-${{ matrix.configuration }} path: Plain Craft Launcher 2\obj\${{ matrix.configuration }}\Plain Craft Launcher 2.exe +