diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..5dea058 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,79 @@ +# 定义工作流名称 +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: + # 定义矩阵,矩阵中每组都会单独执行,并使矩阵本身成为可用的上下文 + matrix: + include: + - name: 开发版 + configuration: Debug + - name: 开发版 + configuration: Snapshot + - name: 快照版 + configuration: Release + - name: 快照版 + configuration: ReleaseUpdate + - name: 正式版 + configuration: BETA + + # 显然,只有Windows才能构建.NET Framework程序 + runs-on: windows-latest + + # 定义步骤列表 + steps: + + # 第一步,签出仓库到本地 + - name: 签出仓库 + # 调用actions/checkout仓库的调用预设工作流 + uses: actions/checkout@v4 + # 调用参数 + with: + # 只签出第一层 + fetch-depth: 0 + + # 第二步,配置生成工具 + - name: 配置 MSBuild + uses: microsoft/setup-msbuild@v2 + with: + # 生成工具使用64位架构 + msbuild-architecture: x64 + + # 第三步,编译 + - name: 编译源代码 + # 直接运行Powershell命令 + # ${{}}括号内的是工作流表达式,此处即当前运行的矩阵的参数,运行时将直接替换 + # $env:是Powershell读取环境变量的语法 + run: msbuild $env:Project_Path /p:Configuration=${{ matrix.configuration }} + env: + # 设置单个步骤的环境变量 + # 由于路径包含空格,使用环境变量传入路径,避免令人疑惑的引号写法 + Project_Path: Plain Craft Launcher 2\Plain Craft Launcher 2.vbproj + + # 第四步,上传编译产物到Artifacts + - name: 上传编译产物 + uses: actions/upload-artifact@v4 + with: + # Artifact压缩包名称,此处命名为友好名称_原始名称 + name: ${{ matrix.name }}_${{ matrix.configuration }} + # 将要上传的对象,将被压缩为Artifact压缩包 + path: Plain Craft Launcher 2\obj\${{ matrix.configuration }}\Plain Craft Launcher 2.exe diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml deleted file mode 100644 index 0c31ac9..0000000 --- a/.github/workflows/dotnet-desktop.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: .NET Core Desktop - -on: - push: - paths: - - 'Plain Craft Launcher 2.sln' - - 'Plain Craft Launcher 2/**' - - '.github/workflows/**' - pull_request: - paths: - - 'Plain Craft Launcher 2.sln' - - 'Plain Craft Launcher 2/**' - - '.github/workflows/**' - -jobs: - - build: - - strategy: - matrix: - configuration: [Beta, Debug, Release, ReleaseUpdate] - - runs-on: windows-latest - - env: - Solution_Name: Plain Craft Launcher 2.sln - Wap_Project_Directory: Plain Craft Launcher 2 - Wap_Project_Path: Plain Craft Launcher 2\Plain Craft Launcher 2.vbproj - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild - - name: Setup MSBuild.exe - uses: microsoft/setup-msbuild@v2 - - # Restore the application to populate the obj folder with RuntimeIdentifiers - - name: Restore the application - run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration - env: - Configuration: ${{ matrix.configuration }} - - # Create the app package by building and packaging the Windows Application Packaging project - - name: Create the app package - run: msbuild $env:Wap_Project_Path /p:Configuration=$env:Configuration - env: - Configuration: ${{ matrix.configuration }} - - # Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact - - name: Upload build artifacts - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.configuration }} - path: ${{ env.Wap_Project_Directory }}\obj\${{ matrix.configuration }}\Plain Craft Launcher 2.exe \ No newline at end of file