Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

重构编译工作流文件 #4009

Merged
merged 9 commits into from
Jun 13, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 19 additions & 51 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,79 +1,47 @@
# 定义工作流名称
name: 构建 PCL
name: Build

# 定义触发器
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程序

strategy:
matrix:
configuration: [Debug, Release, Snapshot, BETA, ReleaseUpdate]

runs-on: windows-latest

# 定义步骤列表
steps:

# 第一步,签出仓库到本地
- name: 签出仓库
# 调用actions/checkout仓库的调用预设工作流
- name: Checkout
uses: actions/checkout@v4
# 调用参数
with:
# 只签出第一层
fetch-depth: 0

# 第二步,配置生成工具
- name: 配置 MSBuild
- name: Set Describe
shell: bash
run: |
Describe=`git describe --tags`
echo "Describe=$Describe" >> $GITHUB_ENV

- name: Setup MSBuild.exe
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
- name: Build
run: msbuild "Plain Craft Launcher 2\Plain Craft Launcher 2.vbproj" -p:Configuration=${{ matrix.configuration }}

# 第四步,上传编译产物到Artifacts
- name: 上传编译产物
- name: Upload a Build Artifact
uses: actions/upload-artifact@v4
with:
# Artifact压缩包名称,此处命名为友好名称_原始名称
name: ${{ matrix.name }}_${{ matrix.configuration }}
# 将要上传的对象,将被压缩为Artifact压缩包
name: ${{ matrix.configuration }} ${{ env.Describe }}
path: Plain Craft Launcher 2\obj\${{ matrix.configuration }}\Plain Craft Launcher 2.exe