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:
@@ -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' }
|
|
||||||
@@ -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,
|
Go binaries. It requires no Redis, message broker, hosted identity provider,
|
||||||
telemetry service, or JavaScript framework.
|
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
|
## Packages
|
||||||
|
|
||||||
- `requestmeta`: trusted-proxy resolution, HTTPS/origin metadata, and request IDs.
|
- `requestmeta`: trusted-proxy resolution, HTTPS/origin metadata, and request IDs.
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
.gitattributes
|
.gitattributes
|
||||||
.gitea/workflows/assurance.yml
|
.gitea/workflows/assurance.yml
|
||||||
.gitea/workflows/cross-platform.yml
|
|
||||||
.gitea/workflows/verify.yml
|
.gitea/workflows/verify.yml
|
||||||
.gitignore
|
.gitignore
|
||||||
CHANGELOG.md
|
CHANGELOG.md
|
||||||
@@ -47,7 +46,6 @@ scripts/export-public.sh
|
|||||||
scripts/public-snapshot.allow
|
scripts/public-snapshot.allow
|
||||||
scripts/test-public-snapshot.sh
|
scripts/test-public-snapshot.sh
|
||||||
scripts/verify.sh
|
scripts/verify.sh
|
||||||
scripts/verify.ps1
|
|
||||||
starters/basic/.env.example
|
starters/basic/.env.example
|
||||||
starters/basic/README.md
|
starters/basic/README.md
|
||||||
starters/basic/main.go
|
starters/basic/main.go
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user