scoring infra

This commit is contained in:
adienakhmad 2025-11-19 15:08:36 +00:00
parent 4acc30a1d1
commit dd14bcb33c
4 changed files with 102 additions and 6 deletions

1
.gitignore vendored
View file

@ -28,6 +28,7 @@
[Oo]bj/ [Oo]bj/
_UpgradeReport_Files/ _UpgradeReport_Files/
[Pp]ackages/ [Pp]ackages/
/.contest
Thumbs.db Thumbs.db
Desktop.ini Desktop.ini

View file

@ -3,5 +3,12 @@
<packageSources> <packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="local" value="./LocalNuget" /> <add key="local" value="./LocalNuget" />
<add key="fmlx-nuget" value="https://nexus.formulatrix.com/repository/nuget/index.json" protocolVersion="3" />
</packageSources> </packageSources>
</configuration> <packageSourceCredentials>
<fmlx-nuget>
<add key="Username" value="formulatrix" />
<add key="ClearTextPassword" value="faraday435" />
</fmlx-nuget>
</packageSourceCredentials>
</configuration>

View file

@ -11,12 +11,8 @@
<PackageReference Include="OpenCvSharp4" Version="4.10.0.20241108" /> <PackageReference Include="OpenCvSharp4" Version="4.10.0.20241108" />
<PackageReference Include="OpenCvSharp4_runtime.debian.12-arm64" Version="4.10.0" /> <PackageReference Include="OpenCvSharp4_runtime.debian.12-arm64" Version="4.10.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2"/> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2"/>
<PackageReference Include="JetBrains.Annotations" Version="2023.3.0"/>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Reference Include="JetBrains.Annotations">
<HintPath>..\..\..\.nuget\packages\jetbrains.annotations\2023.3.0\lib\netstandard2.0\JetBrains.Annotations.dll</HintPath>
</Reference>
</ItemGroup>
</Project> </Project>

92
mise.toml Normal file
View file

@ -0,0 +1,92 @@
# Quick Guide
# - install mise
# - download the asset and extract them to ASSET_PATH_RO
# - mise trust mise.toml
# - mise run verify-asset
# - require hashdeep
# `hashdeep` package in debian
# or `md5deep` package in fedora
# or uncomment `tools."http:hashdeep"` below in windows
# - mise run serve
# - mise run arrange
# - mise run action
# - mise run assert
# - mise run bench
[env]
ASSET_PATH_RO = "{{ [xdg_cache_home, 'stitch-a-ton', 'asset'] | join_path }}"
CONTEST_HOST = "http://localhost:7007"
CONTEST_API = "/api/image/generate"
CONTEST_OUTPUT = "{{ [cwd, '.contest'] | join_path }}"
DOTNET_ENVIRONMENT = "Production"
ANSWER_COMMIT_HASH = "89a07b40bf0414212c96945671a012035d375a25"
[tools]
dotnet = "8"
xh = "latest"
uv = "latest"
k6 = "latest"
# uncomment these if you're on windows
#[tools."http:hashdeep"]
#version = "4.4"
#[tools."http:hashdeep".platforms]
#windows-x64 = {url = "https://github.com/jessek/hashdeep/releases/download/v4.4/md5deep-4.4.zip"}
[tasks.setup]
run = '''
{% if env.CONTEST_OUTPUT is not exists %}
mkdir .contest
{% endif %}
'''
[tasks.verify-asset]
dir = "{{ env.ASSET_PATH_RO }}"
run = '''
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/asset.txt -o ../asset.txt
hashdeep -arbvk ../asset.txt .
'''
[tasks.arrange]
depends = ['setup']
dir = "{{ env.CONTEST_OUTPUT }}"
outputs = ['answer.json', 'action.py', 'assert.py', 'bench.js', 'fuzzy.json']
run = '''
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/answer.json -o answer.json
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/action.py -o action.py
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/assert.py -o assert.py
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/bench.js -o bench.js
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/fuzzy.json -o fuzzy.json
'''
[tasks.serve]
run = "dotnet run -c Release --no-launch-profile --urls {{env.CONTEST_HOST}} --project StitchATon"
[tasks.quick]
depends = ['arrange']
dir = "{{ env.CONTEST_OUTPUT }}"
run = '''
xh post {{env.CONTEST_HOST}}{{env.CONTEST_ENDPOINT}} canvas_rect=A1:H12 crop_offset:=[0,0] crop_size:=[1,1] output_scale:=0.25 -o quick.png
'''
[tasks.action]
depends = ['arrange']
dir = "{{ env.CONTEST_OUTPUT }}"
run = '''
uv run --no-config --script {{ [env.CONTEST_OUTPUT, 'action.py'] | join_path }}
'''
[tasks.assert]
depends = ['arrange']
dir = "{{ env.CONTEST_OUTPUT }}"
run = '''
uvx --no-config --with-requirements assert.py pytest assert.py
'''
[tasks.bench]
depends = ['arrange']
dir = "{{ env.CONTEST_OUTPUT }}"
run = '''
k6 run -e TARGET_URL="{{ env.CONTEST_HOST }}{{ env.CONTEST_API }}" bench.js
'''