Skip to content

Commit

Permalink
Merge pull request #74 from UM-Bridge/julia
Browse files Browse the repository at this point in the history
Add julia model server and test via CI
  • Loading branch information
annereinarz authored May 17, 2024
2 parents de63d3b + 33fb4f2 commit 6fdd13f
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 0 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/client-julia-example.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: client-julia-example

on:
push:
pull_request:
branches:
- 'main'

jobs:

test:
runs-on: ubuntu-latest
container: ubuntu:latest

services:
model:
image: linusseelinger/model-exahype-tsunami:latest
ports:
- 4242:4242

steps:
-
name: Checkout
uses: actions/checkout@v2
-
uses: julia-actions/setup-julia@latest
-
name: Build and run
run: |
cd clients/julia && julia -e 'using Pkg; Pkg.add("UMBridge")' juliaClient.jl
49 changes: 49 additions & 0 deletions .github/workflows/model-testmodel-julia.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: model-testmodel-julia

on:
push:
branches:
- 'main'

jobs:
build:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: models/testmodel-julia/
push: true
tags: linusseelinger/model-testmodel-julia:latest

test:
runs-on: ubuntu-latest
needs: build

services:
model:
image: linusseelinger/model-testmodel-julia:latest
ports:
- 4242:4242

steps:
-
name: Validate
run: |
docker run --network=host -e model_host=http://localhost:4242 linusseelinger/testing-protocol-conformity-current:latest
13 changes: 13 additions & 0 deletions models/testmodel-julia/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM ubuntu:latest

COPY minimal-server.jl /

RUN apt update && \
DEBIAN_FRONTEND="noninteractive" apt install -y curl

ENV JULIA_PATH /usr/local/julia
ENV PATH $JULIA_PATH/bin:$PATH

RUN curl -fsSL https://install.julialang.org | sh -s -- -y

CMD julia minimal-server.jl
18 changes: 18 additions & 0 deletions models/testmodel-julia/minimal-server.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import Pkg

tempdir = mktempdir()
Pkg.activate(tempdir)
Pkg.add(["UMBridge"])

using UMBridge

testmodel = UMBridge.Model(
name = "forward",
inputSizes = [1],
outputSizes = [1],
supportsGradient = true,
evaluate = (input, config) -> 2 * input[1],
gradient = (outWrt, inWrt, input, sens, config) -> 2 * sens[1]
)

UMBridge.serve_models([testmodel], 4242)

0 comments on commit 6fdd13f

Please sign in to comment.