chore(cli): support Winget publishing#5615
Conversation
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6659122f24
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } | ||
| uploadedAssets.add(realPathname); | ||
| const relativePath = toApiRelativePath(cwd, pathname); | ||
| const relativePath = toApiRelativePath(realProjectRoot, realPathname); |
There was a problem hiding this comment.
Preserve logical upload filenames for symlinked files
When a function file is reached through a symlink inside the project (for example supabase/functions/foo/index.ts points at src/foo.ts, or a configured static path is symlinked), this names the multipart file after the real target path while createSourceMetadata and import specifiers still refer to the logical path. The API then receives metadata such as supabase/functions/foo/index.ts but no file under that name, so source deploys can fail or miss static/imported assets. Use the real path for containment/deduplication, but keep the uploaded filename based on the original pathname relative to the project root.
Useful? React with 👍 / 👎.
| } | ||
|
|
||
| $downloadPath = Join-Path ([System.IO.Path]::GetTempPath()) 'wingetcreate.exe' | ||
| Invoke-WebRequest 'https://aka.ms/wingetcreate/latest' -OutFile $downloadPath |
There was a problem hiding this comment.
Install .NET 6 before running WingetCreate
When WINGET_PUBLISH_ENABLED=true, this downloads the standalone WingetCreate executable on windows-2025, but the job never installs the .NET 6 runtime that executable requires. The WingetCreate README says the aka.ms/wingetcreate/latest standalone exe requires .NET Runtime 6.0, while the runner-images announcement removed .NET 6 from Windows Server 2025 images in July 2025, so the first stable publish with Winget enabled will fail before submitting the manifest. Add actions/setup-dotnet for 6.x or switch to an installation path that includes the dependency.
Useful? React with 👍 / 👎.
What changed
Adds Winget publishing support for stable Supabase CLI releases using WingetCreate instead of maintaining custom Winget manifest YAML generation.
The release workflow now keeps Winget publishing behind
WINGET_PUBLISH_ENABLED, so the firstSupabase.CLIsubmission can land inmicrosoft/winget-pkgsbefore CI starts submitting updates. Once enabled, stable releases call the new PowerShell wrapper to runwingetcreate updatewith the released Windows x64 and arm64 ZIP URLs.The release docs and distribution ADR now describe the two-phase rollout: one-time bootstrap PR first, then automated WingetCreate updates from release CI.
Reviewer notes
The functions deploy realpath adjustment is included because the CLI integration suite exposed a macOS
/varversus/private/varpath mismatch while validating this branch.