Skip to content

Commit 05fa7b1

Browse files
CICD to store test models in github registry
1 parent 2a5bf01 commit 05fa7b1

File tree

10 files changed

+92
-47
lines changed

10 files changed

+92
-47
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Build test models
2+
3+
on:
4+
push:
5+
branches:
6+
- '**'
7+
8+
# on: workflow_dispatch
9+
10+
permissions:
11+
contents: write
12+
packages: write
13+
checks: write
14+
attestations: write
15+
id-token: write
16+
17+
env:
18+
REGISTRY: ghcr.io
19+
IMAGE_NAME: ${{ github.repository }}
20+
21+
jobs:
22+
build:
23+
name: build test model
24+
runs-on: ubuntu-latest
25+
env:
26+
CI: true
27+
steps:
28+
- name: Set up Go
29+
uses: actions/setup-go@v2
30+
with:
31+
go-version: '1.24.5'
32+
- name: Checkout code
33+
uses: actions/checkout@v4
34+
- name: Install dependencies
35+
run: |
36+
go mod download
37+
- name: download models
38+
run: |
39+
go run testData/downloadModels.go
40+
- name: List models directory
41+
run: ls -l ./models
42+
- name: Remove models from .dockerignore # make sure models folder is not ignored
43+
run: sed -i '/^\/models$/d' .dockerignore
44+
- name: Log in to the Container registry
45+
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
46+
with:
47+
registry: ${{ env.REGISTRY }}
48+
username: ${{ github.actor }}
49+
password: ${{ secrets.GITHUB_TOKEN }}
50+
- name: Build and push Docker image
51+
uses: docker/build-push-action@v5
52+
with:
53+
context: .
54+
file: models.Dockerfile
55+
tags: ghcr.io/knights-analytics/hugot/models:latest
56+
push: true

.github/workflows/release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
run: |
3434
go mod download
3535
- name: Build and run tests
36-
run: make run-tests BUILD_TAG=ALL
36+
run: ./scripts/run-unit-tests.sh ALL
3737
- name: Install goveralls
3838
run: go install github.com/mattn/goveralls@latest
3939
- name: Send coverage

.github/workflows/test.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
run: |
2424
go mod download
2525
- name: Build and run tests
26-
run: make run-tests BUILD_TAG=ALL
26+
run: ./scripts/run-unit-tests.sh ALL
2727
- name: Install goveralls
2828
run: go install github.com/mattn/goveralls@latest
2929
- name: Send coverage

Makefile

Lines changed: 0 additions & 18 deletions
This file was deleted.

go.mod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
module github.com/knights-analytics/hugot
22

3-
go 1.24
3+
go 1.24.0
44

55
require (
66
github.com/daulet/tokenizers v1.22.2
77
github.com/gomlx/exceptions v0.0.3
88
github.com/gomlx/go-huggingface v0.2.2
9-
github.com/gomlx/gomlx v0.21.0
10-
github.com/gomlx/gopjrt v0.7.3
9+
github.com/gomlx/gomlx v0.21.1
10+
github.com/gomlx/gopjrt v0.7.4
1111
github.com/gomlx/onnx-gomlx v0.2.4
1212
github.com/stretchr/testify v1.10.0
1313
github.com/sugarme/tokenizer v0.2.3-0.20250806005049-d78f65a68e82
@@ -31,11 +31,11 @@ require (
3131
github.com/schollz/progressbar/v2 v2.15.0 // indirect
3232
github.com/sugarme/regexpset v0.0.0-20200920021344-4d4ec8eaf93c // indirect
3333
github.com/x448/float16 v0.8.4 // indirect
34-
golang.org/x/crypto v0.40.0 // indirect
35-
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 // indirect
36-
golang.org/x/sys v0.34.0 // indirect
37-
golang.org/x/text v0.27.0 // indirect
38-
google.golang.org/protobuf v1.36.6 // indirect
34+
golang.org/x/crypto v0.41.0 // indirect
35+
golang.org/x/exp v0.0.0-20250813145105-42675adae3e6 // indirect
36+
golang.org/x/sys v0.35.0 // indirect
37+
golang.org/x/text v0.28.0 // indirect
38+
google.golang.org/protobuf v1.36.7 // indirect
3939
gopkg.in/yaml.v3 v3.0.1 // indirect
4040
k8s.io/klog/v2 v2.130.1 // indirect
4141
)

go.sum

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ github.com/gomlx/exceptions v0.0.3 h1:HKnTgEjj4jlmhr8zVFkTP9qmV1ey7ypYYosQ8GzXWu
2929
github.com/gomlx/exceptions v0.0.3/go.mod h1:uHL0TQwJ0xaV2/snJOJV6hSE4yRmhhfymuYgNredGxU=
3030
github.com/gomlx/go-huggingface v0.2.2 h1:k9EGJpTecY+vbMrKOsMocSY6e7Ul6WW47mODueQG0bA=
3131
github.com/gomlx/go-huggingface v0.2.2/go.mod h1:pSI9KFkGVksYYnNNO5lqLPBR0hzboFQb2FGrpGjseIY=
32-
github.com/gomlx/gomlx v0.21.0 h1:OaoPBRHn2a3yJeuCr+BANBKnGgEXT8iKWxxaKeAXEdg=
33-
github.com/gomlx/gomlx v0.21.0/go.mod h1:Su9/JUI80qy1IQGUyADx2MUCEXSKGv129l52KrrV+rY=
34-
github.com/gomlx/gopjrt v0.7.3 h1:3a5eA69adMrBzBOfkscP/g+g3qOO/5Pv4s8iK205DTI=
35-
github.com/gomlx/gopjrt v0.7.3/go.mod h1:VswjttDY1uSllQ+Vs69P4kgsH3EkFEHADUCdDbfgh0Y=
32+
github.com/gomlx/gomlx v0.21.1 h1:B3xkO4raitt4RlqW1zG0QKS9ro9JncrjOC3iPr/g4D0=
33+
github.com/gomlx/gomlx v0.21.1/go.mod h1:0t5TiwpXZtg5o4D8HLN3sHiegT6HjAwCNWJuiH0IuGs=
34+
github.com/gomlx/gopjrt v0.7.4 h1:IfAHxLSvTor4WBcWO11CaRS0ZdHzptxYIPEY3Ko0UwE=
35+
github.com/gomlx/gopjrt v0.7.4/go.mod h1:VswjttDY1uSllQ+Vs69P4kgsH3EkFEHADUCdDbfgh0Y=
3636
github.com/gomlx/onnx-gomlx v0.2.4 h1:vZXXeUBq6XjPemZ16iwjNaJs/qMDMMQ+nb6wALQeCGc=
3737
github.com/gomlx/onnx-gomlx v0.2.4/go.mod h1:mBFZF1OT5hW/jsc0ae58VKoB9BaGYpEaZ36xakWxEds=
3838
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
@@ -89,18 +89,18 @@ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavM
8989
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
9090
github.com/yalue/onnxruntime_go v1.21.0 h1:DdtvfY7OP5gR8mwPDqAOAQckf+KcI30hPNJL8hQaYWI=
9191
github.com/yalue/onnxruntime_go v1.21.0/go.mod h1:b4X26A8pekNb1ACJ58wAXgNKeUCGEAQ9dmACut9Sm/4=
92-
golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM=
93-
golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY=
94-
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 h1:R9PFI6EUdfVKgwKjZef7QIwGcBKu86OEFpJ9nUEP2l4=
95-
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc=
96-
golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
97-
golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
98-
golang.org/x/term v0.33.0 h1:NuFncQrRcaRvVmgRkvM3j/F00gWIAlcmlB8ACEKmGIg=
99-
golang.org/x/term v0.33.0/go.mod h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0=
100-
golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=
101-
golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=
102-
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
103-
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
92+
golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
93+
golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
94+
golang.org/x/exp v0.0.0-20250813145105-42675adae3e6 h1:SbTAbRFnd5kjQXbczszQ0hdk3ctwYf3qBNH9jIsGclE=
95+
golang.org/x/exp v0.0.0-20250813145105-42675adae3e6/go.mod h1:4QTo5u+SEIbbKW1RacMZq1YEfOBqeXa19JeshGi+zc4=
96+
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
97+
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
98+
golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=
99+
golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=
100+
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
101+
golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
102+
google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A=
103+
google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
104104
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
105105
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
106106
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

models.Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
FROM scratch
2+
3+
COPY models ./models

scripts/run-unit-tests-container.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ echo HUGOT_BUILD_TAG is "$HUGOT_BUILD_TAG"
1010

1111
if [[ -n $HUGOT_BUILD_TAG ]]; then
1212
echo "running with -tags=ALL"
13-
gotestsum --junitfile=/test/unit/unit.xml --jsonfile=/test/unit/unit.json -- -tags=ALL -coverprofile=/test/unit/cover.out.pre -coverpkg ./... -timeout 30m -race -covermode=atomic ./...
13+
gotestsum --junitfile=/test/unit/unit.xml --jsonfile=/test/unit/unit.json -- -tags=ALL -coverprofile=/test/unit/cover.out.pre -coverpkg ./... -timeout 60m -race -covermode=atomic ./...
1414
else
1515
echo "running without build tags"
16-
gotestsum --junitfile=/test/unit/unit.xml --jsonfile=/test/unit/unit.json -- -coverprofile=/test/unit/cover.out.pre ./... -timeout 30m -race -covermode=atomic ./...
16+
gotestsum --junitfile=/test/unit/unit.xml --jsonfile=/test/unit/unit.json -- -coverprofile=/test/unit/cover.out.pre ./... -timeout 60m -race -covermode=atomic ./...
1717
fi
1818

1919
grep -v "downloadModels.go" /test/unit/cover.out.pre > /test/unit/cover.out && rm /test/unit/cover.out.pre

scripts/run-unit-tests.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ else
3030
fi
3131

3232
# build with compose
33-
docker compose -f "$src_dir/compose-test.yaml" build
33+
docker compose -f "$src_dir/compose-test.yaml" build hugot && \
34+
docker compose -f "$src_dir/compose-test.yaml" build hugot-test
3435

3536
echo "Running tests for commit hash: $commit_hash"
3637
docker compose -f "$src_dir/compose-test.yaml" up && \

test.Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
ARG BUILD_PLATFORM=linux/amd64
22

3+
FROM ghcr.io/knights-analytics/hugot/models:latest AS models
4+
35
FROM --platform=$BUILD_PLATFORM hugot:latest AS hugot-test
46

57
COPY . /build
8+
COPY --from=models /models /build/models
69

710
RUN cd /build && \
811
chown -R testuser:testuser /build && \

0 commit comments

Comments
 (0)