docs: make Linux the supported release platform
verify / verify (push) Successful in 2m58s

Sanitized snapshot of private source e6784dc71e34681eca4ac52b0f9fe9efc9ce26ca.\n\nAI-assisted implementation reviewed by Cole Speelman.

Signed-off-by: Cole Speelman <crspeelman@gmail.com>
This commit is contained in:
2026-08-16 17:32:41 -04:00
parent 3a4b6db9b8
commit df946d888e
4 changed files with 5 additions and 97 deletions
-54
View File
@@ -1,54 +0,0 @@
# SPDX-License-Identifier: AGPL-3.0-only
name: cross-platform-release-gate
on:
workflow_dispatch:
permissions:
contents: read
jobs:
verify:
name: ${{ matrix.os }} / Go ${{ matrix.go }}
runs-on: ${{ matrix.runner }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- os: Linux
runner: himesan-go1266
go: '1.26.6'
- os: Windows
runner: himesan-windows-go1266
go: '1.26.6'
steps:
- name: Require the repository owner on Linux
if: matrix.os != 'Windows'
run: test "$GITHUB_ACTOR" = gamertan
- name: Require the repository owner on Windows
if: matrix.os == 'Windows'
shell: pwsh
run: if ($env:GITHUB_ACTOR -ne 'gamertan') { throw 'untrusted actor' }
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
fetch-depth: 0
persist-credentials: false
- name: Assert the pinned runner toolchain
if: matrix.os != 'Windows'
run: test "$(go env GOVERSION)" = "go${{ matrix.go }}"
- name: Assert the pinned Windows toolchain
if: matrix.os == 'Windows'
shell: pwsh
run: if ((& go env GOVERSION) -ne 'go${{ matrix.go }}') { throw 'unexpected Go toolchain' }
- name: Verify on Linux
if: matrix.os != 'Windows'
run: ./scripts/verify.sh
- name: Verify on Windows
if: matrix.os == 'Windows'
shell: pwsh
run: ./scripts/verify.ps1
- name: Require an unchanged checkout on Linux
if: matrix.os != 'Windows'
run: test -z "$(git status --porcelain=v1 --untracked-files=all)"
- name: Require an unchanged checkout on Windows
if: matrix.os == 'Windows'
shell: pwsh
run: if (& git status --porcelain=v1 --untracked-files=all) { throw 'dirty checkout' }
+5
View File
@@ -17,6 +17,11 @@ The first preview targets modest Linux servers, local files, SQLite, and normal
Go binaries. It requires no Redis, message broker, hosted identity provider,
telemetry service, or JavaScript framework.
Linux is the required and supported release platform. WSL may be used as a
Linux development environment. Native Windows is not a release gate or support
promise; downstream users may evaluate the ordinary Go packages elsewhere
without turning that portability into a maintained compatibility claim.
## Packages
- `requestmeta`: trusted-proxy resolution, HTTPS/origin metadata, and request IDs.
-2
View File
@@ -2,7 +2,6 @@
.gitattributes
.gitea/workflows/assurance.yml
.gitea/workflows/cross-platform.yml
.gitea/workflows/verify.yml
.gitignore
CHANGELOG.md
@@ -47,7 +46,6 @@ scripts/export-public.sh
scripts/public-snapshot.allow
scripts/test-public-snapshot.sh
scripts/verify.sh
scripts/verify.ps1
starters/basic/.env.example
starters/basic/README.md
starters/basic/main.go
-41
View File
@@ -1,41 +0,0 @@
# SPDX-License-Identifier: AGPL-3.0-only
$ErrorActionPreference = "Stop"
$root = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
Push-Location $root
try {
$failed = $false
Get-ChildItem -Recurse -File | ForEach-Object {
$relative = [IO.Path]::GetRelativePath($root, $_.FullName).Replace('\', '/')
if ($relative.StartsWith('.git/') -or $relative.StartsWith('LICENSES/') -or $relative -eq 'go.sum') { return }
if ($relative.StartsWith('starters/') -or $relative.StartsWith('examples/')) { $expected = '0BSD' }
elseif ($relative.StartsWith('scripts/') -or $relative.StartsWith('.gitea/') -or $relative.StartsWith('services/')) { $expected = 'AGPL-3.0-only' }
else { $expected = 'MPL-2.0' }
$header = (Get-Content -LiteralPath $_.FullName -TotalCount 5) -join "`n"
if (-not $header.Contains("SPDX-License-Identifier: $expected")) {
Write-Error "license mismatch: $relative expected $expected"
$failed = $true
}
}
if ($failed) { throw "license boundary failed" }
$unformatted = & gofmt -l .
if ($LASTEXITCODE -ne 0 -or $unformatted) { throw "gofmt check failed: $unformatted" }
& go test ./...
if ($LASTEXITCODE -ne 0) { throw "go test failed" }
& go test -race ./...
if ($LASTEXITCODE -ne 0) { throw "race test failed" }
& go vet ./...
if ($LASTEXITCODE -ne 0) { throw "go vet failed" }
$build = Join-Path ([IO.Path]::GetTempPath()) ("gamertan-web-" + [guid]::NewGuid().ToString('N'))
New-Item -ItemType Directory -Path $build | Out-Null
try {
& go build -trimpath -o (Join-Path $build 'basic.exe') ./starters/basic
if ($LASTEXITCODE -ne 0) { throw "starter build failed" }
} finally {
Remove-Item -LiteralPath $build -Recurse -Force
}
& git diff --check
if ($LASTEXITCODE -ne 0) { throw "git diff check failed" }
} finally {
Pop-Location
}