Skip to content

Commit 069eb6e

Browse files
Merge pull request #1 from waggle-sensor/benchmarking
Benchmarking update
2 parents c66418b + 13b9b7a commit 069eb6e

File tree

97 files changed

+3780
-1916
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+3780
-1916
lines changed

.github/workflows/benchmarking.yml

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
name: Build/Push Benchmark Images
2+
on:
3+
push:
4+
branches:
5+
- main
6+
tags:
7+
- 'v*'
8+
paths:
9+
- 'benchmarking/benchmarks/**'
10+
- '.github/workflows/benchmarking.yml'
11+
pull_request:
12+
branches:
13+
- main
14+
paths:
15+
- 'benchmarking/benchmarks/**'
16+
- '.github/workflows/benchmarking.yml'
17+
18+
jobs:
19+
discover-benchmarks:
20+
runs-on: ubuntu-latest
21+
outputs:
22+
benchmarks: ${{ steps.set-matrix.outputs.benchmarks }}
23+
steps:
24+
- uses: actions/checkout@v4
25+
26+
- name: Discover Benchmarks
27+
id: set-matrix
28+
run: |
29+
# Find all benchmark directories, excluding template
30+
BENCHMARKS=$(find benchmarking/benchmarks -mindepth 1 -maxdepth 1 -type d -not -name 'template' -not -name '.git' -exec basename {} \; | jq -R -s -c 'split("\n")[:-1]')
31+
echo "benchmarks=$BENCHMARKS" >> $GITHUB_OUTPUT
32+
echo "Found benchmarks: $BENCHMARKS"
33+
34+
build-push-benchmarks:
35+
needs: discover-benchmarks
36+
if: needs.discover-benchmarks.outputs.benchmarks != '[]'
37+
runs-on: ubuntu-latest
38+
strategy:
39+
fail-fast: false
40+
matrix:
41+
benchmark: ${{ fromJson(needs.discover-benchmarks.outputs.benchmarks) }}
42+
env:
43+
REGISTRY_URL: ${{ secrets.NRP_GITLAB_REGISTRY_URL }}
44+
IMAGE_PATH: /ndp/sage/nrp-image-search
45+
BENCHMARK_NAME: ${{ matrix.benchmark }}
46+
steps:
47+
- uses: actions/checkout@v4
48+
49+
- name: Set Image Tag
50+
run: |
51+
if [[ "$GITHUB_REF" == refs/heads/* ]]; then
52+
IMAGE_TAG="${GITHUB_REF#refs/heads/}"
53+
elif [[ "$GITHUB_REF" == refs/tags/* ]]; then
54+
IMAGE_TAG="${GITHUB_REF#refs/tags/}"
55+
elif [[ "$GITHUB_REF" == refs/pull/* ]]; then
56+
PR_NUMBER=$(echo "$GITHUB_REF" | cut -d'/' -f3)
57+
IMAGE_TAG="pr-${PR_NUMBER}"
58+
fi
59+
IMAGE_TAG=$(echo "$IMAGE_TAG" | tr '/' '-')
60+
echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV
61+
62+
- name: Determine Dockerfile and Image Name
63+
id: docker-config
64+
run: |
65+
BENCHMARK_DIR="benchmarking/benchmarks/${{ matrix.benchmark }}"
66+
67+
# Convert benchmark name to lowercase for Docker image name (Docker requires lowercase)
68+
BENCHMARK_NAME_LOWER=$(echo "${{ matrix.benchmark }}" | tr '[:upper:]' '[:lower:]')
69+
70+
# Use Dockerfile.job for the combined job image
71+
DOCKERFILE="$BENCHMARK_DIR/Dockerfile.job"
72+
IMAGE_NAME="benchmark-${BENCHMARK_NAME_LOWER}-job"
73+
74+
# Check if Dockerfile exists
75+
if [ ! -f "$DOCKERFILE" ]; then
76+
echo "Dockerfile not found: $DOCKERFILE"
77+
echo "skip=true" >> $GITHUB_OUTPUT
78+
exit 0
79+
fi
80+
81+
echo "dockerfile=$DOCKERFILE" >> $GITHUB_OUTPUT
82+
echo "image_name=$IMAGE_NAME" >> $GITHUB_OUTPUT
83+
echo "skip=false" >> $GITHUB_OUTPUT
84+
echo "Building $IMAGE_NAME from $DOCKERFILE"
85+
86+
- name: Log in to NRP GitLab Container Registry
87+
if: steps.docker-config.outputs.skip != 'true'
88+
run: echo "${{ secrets.NRP_GITLAB_DEPLOY_TOKEN }}" | docker login ${{ secrets.NRP_GITLAB_REGISTRY_URL }} -u ${{ secrets.NRP_GITLAB_DEPLOY_TOKEN_USERNAME }} --password-stdin
89+
90+
- name: Build & Tag Benchmark Image
91+
if: steps.docker-config.outputs.skip != 'true'
92+
env:
93+
REGISTRY_URL: ${{ secrets.NRP_GITLAB_REGISTRY_URL }}
94+
IMAGE_PATH: ${{ env.IMAGE_PATH }}
95+
IMAGE_NAME: ${{ steps.docker-config.outputs.image_name }}
96+
run: |
97+
BENCHMARK_DIR="benchmarking/benchmarks/${{ matrix.benchmark }}"
98+
DOCKERFILE="${{ steps.docker-config.outputs.dockerfile }}"
99+
100+
# Build from benchmark directory with Dockerfile path relative to repo root
101+
docker build -f "$DOCKERFILE" -t "$REGISTRY_URL$IMAGE_PATH/$IMAGE_NAME:$IMAGE_TAG" "$BENCHMARK_DIR"
102+
103+
if [ "$GITHUB_REF" = "refs/heads/main" ]; then
104+
docker tag "$REGISTRY_URL$IMAGE_PATH/$IMAGE_NAME:$IMAGE_TAG" "$REGISTRY_URL$IMAGE_PATH/$IMAGE_NAME:latest"
105+
fi
106+
107+
- name: Push Benchmark Image to NRP GitLab Image Registry
108+
if: steps.docker-config.outputs.skip != 'true'
109+
env:
110+
REGISTRY_URL: ${{ secrets.NRP_GITLAB_REGISTRY_URL }}
111+
IMAGE_PATH: ${{ env.IMAGE_PATH }}
112+
IMAGE_NAME: ${{ steps.docker-config.outputs.image_name }}
113+
run: |
114+
docker push "$REGISTRY_URL$IMAGE_PATH/$IMAGE_NAME:$IMAGE_TAG"
115+
if [ "$GITHUB_REF" = "refs/heads/main" ]; then
116+
docker push "$REGISTRY_URL$IMAGE_PATH/$IMAGE_NAME:latest"
117+
fi

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ __pycache__/
33
**.DS_Store
44
**/flagged/
55
.env
6-
settings.json
6+
settings.json
7+
._*

Readme.md

Lines changed: 24 additions & 42 deletions
Large diffs are not rendered by default.

benchmarking/INQUIRE/Makefile

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

benchmarking/INQUIRE/Readme.md

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

benchmarking/INQUIRE/app/Dockerfile

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

benchmarking/INQUIRE/app/HyperParameters.py

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

0 commit comments

Comments
 (0)