Update build.yml #48
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 定义工作流名称 | |
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: | |
# 定义矩阵,矩阵中每组都会单独执行,并使矩阵本身成为可用的上下文 | |
# 由于一些奇葩的原因,Artifacts使用中文作为名称会导致它无法被下载,因此此处使用英文名。 | |
# 或许后续可以试着直接发Release? | |
matrix: | |
include: | |
- name: 'Debug with symbols' | |
configuration: Debug | |
- name: 'Debug' | |
configuration: Snapshot | |
- name: 'Snapshot' | |
configuration: Release | |
- name: 'Snapshot from update' | |
configuration: ReleaseUpdate | |
- name: 'Release' | |
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 }} | |
# 将要上传的对象,将被压缩为Artifact压缩包 | |
path: Plain Craft Launcher 2\obj\${{ matrix.configuration }}\Plain Craft Launcher 2.exe | |