probe: add native OpenWrt deployment and signed automatic updates [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/dev-image Pipeline failed

This commit is contained in:
justme committed 2026-10-20 14:15:01 +08:00
1 parent 24ba05fbb6
commit cd193378a6
26 files changed
+987 -9

No files matched your search

@@ -22,6 +22,21 @@ public sealed class InstallTests : IClassFixture<BackendFixture>
return JsonNode.Parse(await response.Content.ReadAsStringAsync())!;
}
[Fact]
public async Task OpenWrtScript_IsStaticAndContainsThePinnedReleasePublicKey()
{
string script = await _backend.Anonymous.GetStringAsync("/install/openwrt.sh");
string key = await _backend.Anonymous.GetStringAsync("/install");
Assert.Contains("BEGIN PUBLIC KEY", script, StringComparison.Ordinal);
Assert.Contains(MoShiro.Backend.Api.InstallScripts.ReleaseKey(), script, StringComparison.Ordinal);
Assert.Contains("--genesis", script, StringComparison.Ordinal);
Assert.Contains("--controllers", script, StringComparison.Ordinal);
Assert.Contains("openssl dgst -sha256 -verify", script, StringComparison.Ordinal);
Assert.DoesNotContain("BEGIN PRIVATE KEY", script + key, StringComparison.Ordinal);
JsonNode agent = await CreateAsync("agent");
Assert.Equal("", agent["install_commands"]!["openwrt"]!.GetValue<string>());
}
[Theory]
[InlineData("agent")]
[InlineData("probe")]