-
-
Notifications
You must be signed in to change notification settings - Fork 395
ARM64 Build #2985
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
base: dev
Are you sure you want to change the base?
ARM64 Build #2985
Changes from 16 commits
2afebcb
6772f25
3ce5554
cea6560
e288be3
fd2eb28
4430fb5
cf10e9e
f4f5f40
99f19b2
20561ab
429e8d2
11f5249
73570fd
1d3f11b
f8c49a6
7088885
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
# This workflow will build a .NET project | ||
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net | ||
|
||
name: .NET | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
branches: | ||
- dev | ||
- master | ||
pull_request: | ||
branches: | ||
- dev | ||
- master | ||
|
||
jobs: | ||
build: | ||
|
||
runs-on: windows-latest | ||
env: | ||
FlowVersion: 1.18.0 | ||
NUGET_CERT_REVOCATION_MODE: offline | ||
BUILD_NUMBER: ${{ github.run_number }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Set Flow.Launcher.csproj version | ||
id: update | ||
uses: vers-one/[email protected] | ||
with: | ||
file: | | ||
"**/SolutionAssemblyInfo.cs" | ||
version: ${{ env.FlowVersion }}.${{ env.BUILD_NUMBER }} | ||
- uses: actions/cache@v4 | ||
name: Restore Nuget Cache | ||
with: | ||
path: | | ||
~/.nuget/packages | ||
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }} | ||
restore-keys: | | ||
${{ runner.os }}-nuget | ||
- uses: actions/cache@v4 | ||
name: Restore dotnet tool Cache | ||
with: | ||
path: | | ||
~/.dotnet/tools | ||
key: ${{ runner.os }}-dotnet-tools-${{ hashFiles('~/.dotnet/tools/**') }} | ||
restore-keys: | | ||
${{ runner.os }}-dotnet-tools | ||
- name: Setup .NET | ||
uses: actions/setup-dotnet@v4 | ||
with: | ||
dotnet-version: 7.0.x | ||
- name: Install vpk | ||
Install vpk tool (dotnet tool install will not reinstall if already installed) | ||
We will update the cli by removing cache | ||
run: | | ||
if (!(Get-Command vpk -ErrorAction SilentlyContinue)) { | ||
dotnet tool install -g vpk | ||
} | ||
- name: Restore dependencies | ||
run: dotnet restore -r win-arm64 | ||
- name: Build | ||
run: dotnet build --no-restore -c Release -p:FlowRuntimeIdentifier=win-arm64 | ||
- name: Initialize Service | ||
run: | | ||
sc config WSearch start= auto # Starts Windows Search service- Needed for running ExplorerTest | ||
net start WSearch | ||
# - name: Test | ||
# run: dotnet test --no-build --verbosity normal -c Release -p:FlowRuntimeIdentifier=win-arm64 | ||
- name: Perform post_build tasks | ||
shell: pwsh | ||
run: .\Scripts\post_build.ps1 -flowversion "${env:FlowVersion}-build.${env:BUILD_NUMBER}" | ||
- name: Upload Plugin Nupkg | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: Plugin nupkg | ||
path: | | ||
Output\Release\Flow.Launcher.Plugin.*.nupkg | ||
compression-level: 0 | ||
- name: Upload Setup | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: Flow Installer | ||
path: | | ||
Output\Packages\Flow-Launcher-*.exe | ||
compression-level: 0 | ||
- name: Upload Portable Version | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: Portable Version | ||
path: | | ||
Output\Packages\Flow-Launcher-Portable.zip | ||
compression-level: 0 | ||
- name: Upload Full Nupkg | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: Full nupkg | ||
path: | | ||
Output\Packages\FlowLauncher-*-full.nupkg | ||
|
||
compression-level: 0 | ||
- name: Upload Release Information | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: RELEASES | ||
path: | | ||
Output\Packages\RELEASES | ||
compression-level: 0 | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
<Project> | ||
<PropertyGroup> | ||
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio> | ||
<RuntimeIdentifier>$(FlowRuntimeIdentifier)</RuntimeIdentifier> | ||
</PropertyGroup> | ||
</Project> |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,13 +23,14 @@ assembly_info: | |
assembly_informational_version: $(flowVersion) | ||
|
||
image: Visual Studio 2022 | ||
platform: Any CPU | ||
platform: ARM64 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Critical: AppVeyor does not support ARM64 builds Setting the platform to ARM64 in AppVeyor configuration is problematic as AppVeyor does not provide native ARM64 build support. This could lead to build failures or incorrect artifacts. As mentioned in the PR discussion, consider migrating to GitHub Actions for proper ARM64 build support. Consider:
|
||
configuration: Release | ||
before_build: | ||
- ps: nuget restore | ||
build: | ||
project: Flow.Launcher.sln | ||
verbosity: minimal | ||
|
||
test_script: | ||
- dotnet test --no-build -c Release | ||
after_test: | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Cache keys need better invalidation
Two small issues reduce the usefulness of the new cache steps:
hashFiles('~/.dotnet/tools/**')
always returns an empty string because the path is outside the workspace. The key ends up aswindows-latest-dotnet-tools-
, so the cache never busts when tool versions change.*.csproj
; it misses other restore-affecting files such asDirectory.Packages.props
,packages.lock.json
, andglobal.json
.Suggested adjustments:
(The dotnet-tools key can also hash a repo file like
.github/workflows/dotnet.yml
if you prefer a content-based key.)These tweaks keep caches both reusable and correctly invalidated.
🤖 Prompt for AI Agents