From 9da5ec7413d8c6252985df9440d66dba3125d0c0 Mon Sep 17 00:00:00 2001
From: CJKmkp <2564608840@qq.com>
Date: Sat, 6 Sep 2025 23:58:00 +0800
Subject: [PATCH] =?UTF-8?q?=E6=92=A4=E9=94=80=E6=93=8D=E4=BD=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/build.yml | 234 ------------------------------------
1 file changed, 234 deletions(-)
delete mode 100644 .github/workflows/build.yml
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
deleted file mode 100644
index 04deec3e..00000000
--- a/.github/workflows/build.yml
+++ /dev/null
@@ -1,234 +0,0 @@
-name: Build and Release
-
-on:
- push:
- branches: [ main, beta ]
- pull_request:
- branches: [ main, beta ]
- release:
- types: [ published ]
-
-env:
- DOTNET_VERSION: '4.7.2'
- PROJECT_PATH: 'Ink Canvas'
- INNO_SETUP_VERSION: '6.2.2'
-
-jobs:
- build:
- runs-on: windows-latest
- strategy:
- matrix:
- include:
- - platform: 'x86'
- runtime: 'win-x86'
- configuration: 'Release'
- arch_suffix: 'x86'
- - platform: 'x64'
- runtime: 'win-x64'
- configuration: 'Release'
- arch_suffix: 'x64'
- - platform: 'ARM64'
- runtime: 'win-arm64'
- configuration: 'Release'
- arch_suffix: 'arm64'
-
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
-
- - name: Setup .NET Framework
- uses: actions/setup-dotnet@v4
- with:
- dotnet-version: '4.7.2'
-
- - name: Get version from project
- id: get_version
- run: |
- $version = (Get-Content "${{ env.PROJECT_PATH }}/InkCanvasForClass.csproj" | Select-String '(.*)' | ForEach-Object { $_.Matches[0].Groups[1].Value })
- echo "version=$version" >> $env:GITHUB_OUTPUT
- echo "Version: $version"
-
- - name: Restore NuGet packages
- run: nuget restore "${{ env.PROJECT_PATH }}/InkCanvasForClass.csproj"
-
- - name: Build solution
- run: msbuild "${{ env.PROJECT_PATH }}/InkCanvasForClass.csproj" /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }} /p:OutputPath=./publish/${{ matrix.platform }}/ /p:PublishUrl=./publish/${{ matrix.platform }}/
-
- - name: Copy additional files
- run: |
- # 复制配置文件和其他必要文件
- if (Test-Path "${{ env.PROJECT_PATH }}/InkCanvasForClass.exe.config") {
- Copy-Item "${{ env.PROJECT_PATH }}/InkCanvasForClass.exe.config" -Destination "./publish/${{ matrix.platform }}/"
- }
- # 复制Resources文件夹
- if (Test-Path "${{ env.PROJECT_PATH }}/Resources") {
- Copy-Item "${{ env.PROJECT_PATH }}/Resources" -Destination "./publish/${{ matrix.platform }}/" -Recurse
- }
- # 复制其他必要文件
- Copy-Item "${{ env.PROJECT_PATH }}/*.dll" -Destination "./publish/${{ matrix.platform }}/" -ErrorAction SilentlyContinue
- Copy-Item "${{ env.PROJECT_PATH }}/*.json" -Destination "./publish/${{ matrix.platform }}/" -ErrorAction SilentlyContinue
-
- - name: Install Inno Setup
- if: matrix.platform != 'ARM64'
- run: |
- $url = "https://files.jrsoftware.org/is/6/innosetup-${{ env.INNO_SETUP_VERSION }}.exe"
- $output = "innosetup.exe"
- Invoke-WebRequest -Uri $url -OutFile $output
- Start-Process -FilePath $output -ArgumentList "/SILENT" -Wait
- echo "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" >> $env:GITHUB_PATH
-
- - name: Create Inno Setup script for current architecture
- if: matrix.platform != 'ARM64'
- run: |
- $scriptContent = @"
-; 自动生成的 Inno Setup 脚本
-#define MyAppName "InkCanvasForClass CE"
-#define MyAppVersion "${{ steps.get_version.outputs.version }}"
-#define MyAppPublisher "CJK_mkp"
-#define MyAppURL "https://inkcanvasforclass.github.io"
-#define MyAppExeName "InkCanvasForClass.exe"
-#define MyAppAssocName MyAppName + ""
-#define MyAppAssocExt ".exe"
-#define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt
-
-[Setup]
-AppId={{CA801226-FD02-4C78-BCF8-753B38E70CB3}
-AppName={#MyAppName}
-AppVersion={#MyAppVersion}
-AppPublisher={#MyAppPublisher}
-AppPublisherURL={#MyAppURL}
-AppSupportURL={#MyAppURL}
-AppUpdatesURL={#MyAppURL}
-DefaultDirName={autopf}\{#MyAppName}
-UninstallDisplayIcon={app}\{#MyAppExeName}
-ChangesAssociations=yes
-DefaultGroupName={#MyAppName}
-AllowNoIcons=yes
-PrivilegesRequiredOverridesAllowed=dialog
-OutputDir=./installers
-OutputBaseFilename=InkCanvasForClass-CE-${{ matrix.arch_suffix }}-Setup
-SolidCompression=yes
-WizardStyle=modern
-ArchitecturesAllowed=x86 x64compatible
-ArchitecturesInstallIn64BitMode=x64compatible
-
-[Languages]
-Name: "english"; MessagesFile: "compiler:Languages\English.isl"
-
-[Tasks]
-Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
-
-[Files]
-Source: "./publish/${{ matrix.platform }}\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
-Source: "./publish/${{ matrix.platform }}\InkCanvasForClass.exe.config"; DestDir: "{app}"; Flags: ignoreversion
-Source: "./publish/${{ matrix.platform }}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
-
-[Registry]
-Root: HKA; Subkey: "Software\Classes\{#MyAppAssocExt}\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocKey}"; ValueData: ""; Flags: uninsdeletevalue
-Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}"; ValueType: string; ValueName: ""; ValueData: "{#MyAppAssocName}"; Flags: uninsdeletekey
-Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0"
-Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
-
-[Icons]
-Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
-Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
-Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
-Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
-
-[Run]
-Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
-"@
- $scriptContent | Out-File -FilePath "installer-${{ matrix.platform }}.iss" -Encoding UTF8
-
- - name: Create installer using Inno Setup
- if: matrix.platform != 'ARM64'
- run: |
- mkdir -p ./installers
- iscc installer-${{ matrix.platform }}.iss
-
- - name: Create ARM64 portable package
- if: matrix.platform == 'ARM64'
- run: |
- Compress-Archive -Path "./publish/${{ matrix.platform }}/*" -DestinationPath "./installers/InkCanvasForClass-CE-arm64-Portable.zip"
-
- - name: Upload artifacts
- uses: actions/upload-artifact@v4
- with:
- name: InkCanvas-${{ matrix.platform }}
- path: |
- ./publish/${{ matrix.platform }}/
- ./installers/
- retention-days: 30
-
- create-release:
- needs: build
- runs-on: windows-latest
- if: github.event_name == 'release'
-
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
-
- - name: Download all artifacts
- uses: actions/download-artifact@v4
- with:
- path: ./artifacts
-
- - name: Get version from project
- id: get_version
- run: |
- $version = (Get-Content "${{ env.PROJECT_PATH }}/InkCanvasForClass.csproj" | Select-String '(.*)' | ForEach-Object { $_.Matches[0].Groups[1].Value })
- echo "version=$version" >> $env:GITHUB_OUTPUT
- echo "Version: $version"
-
- - name: Prepare release files
- run: |
- # 创建发布目录
- mkdir -p ./release
-
- # 复制x86安装包
- if (Test-Path "./artifacts/InkCanvas-x86/installers") {
- Copy-Item "./artifacts/InkCanvas-x86/installers/*" -Destination "./release/" -Recurse
- }
-
- # 复制x64安装包
- if (Test-Path "./artifacts/InkCanvas-x64/installers") {
- Copy-Item "./artifacts/InkCanvas-x64/installers/*" -Destination "./release/" -Recurse
- }
-
- # 复制ARM64便携版
- if (Test-Path "./artifacts/InkCanvas-ARM64/installers") {
- Copy-Item "./artifacts/InkCanvas-ARM64/installers/*" -Destination "./release/" -Recurse
- }
-
- # 列出所有文件
- Get-ChildItem -Path "./release" -Recurse | ForEach-Object { Write-Host "Release file: $($_.FullName)" }
-
- - name: Create Release
- uses: softprops/action-gh-release@v1
- with:
- tag_name: v${{ steps.get_version.outputs.version }}
- name: InkCanvasForClass CE v${{ steps.get_version.outputs.version }}
- body: |
- ## InkCanvasForClass CE v${{ steps.get_version.outputs.version }}
-
- ### 下载
- - **x86 (32位)**: 适用于32位Windows系统
- - **x64 (64位)**: 适用于64位Windows系统
- - **ARM64**: 适用于ARM64 Windows系统(便携版)
-
- ### 安装说明
- 1. 下载对应您系统架构的安装包
- 2. 运行安装程序并按照提示完成安装
- 3. ARM64版本为便携版,解压后直接运行即可
-
- ### 系统要求
- - Windows 7/10/11
- - .NET Framework 4.7.2 或更高版本
-
- files: |
- ./release/*
- draft: false
- prerelease: false
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file