Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
ollama
Commits
97ae517f
Unverified
Commit
97ae517f
authored
Mar 28, 2024
by
Daniel Hiltgen
Committed by
GitHub
Mar 28, 2024
Browse files
Merge pull request #3398 from dhiltgen/release_latest
CI automation for tagging latest images
parents
44b813e4
539043f5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
69 additions
and
12 deletions
+69
-12
.github/workflows/latest.yaml
.github/workflows/latest.yaml
+24
-0
scripts/build_docker.sh
scripts/build_docker.sh
+12
-12
scripts/tag_latest.sh
scripts/tag_latest.sh
+33
-0
No files found.
.github/workflows/latest.yaml
0 → 100644
View file @
97ae517f
name
:
latest
on
:
release
:
types
:
[
released
]
jobs
:
update-latest
:
environment
:
release
runs-on
:
linux
steps
:
-
uses
:
actions/checkout@v4
-
name
:
Login to Docker Hub
uses
:
docker/login-action@v3
with
:
username
:
${{ vars.DOCKER_USER }}
password
:
${{ secrets.DOCKER_ACCESS_TOKEN }}
-
name
:
Tag images as latest
env
:
PUSH
:
"
1"
shell
:
bash
run
:
|
export "VERSION=${GITHUB_REF_NAME#v}"
./scripts/tag_latest.sh
scripts/build_docker.sh
View file @
97ae517f
...
@@ -10,7 +10,7 @@ export GOFLAGS="'-ldflags=-w -s \"-X=github.com/ollama/ollama/version.Version=$V
...
@@ -10,7 +10,7 @@ export GOFLAGS="'-ldflags=-w -s \"-X=github.com/ollama/ollama/version.Version=$V
# For developers, you can override the DOCKER_ORG to generate multiarch manifests
# For developers, you can override the DOCKER_ORG to generate multiarch manifests
# DOCKER_ORG=jdoe PUSH=1 ./scripts/build_docker.sh
# DOCKER_ORG=jdoe PUSH=1 ./scripts/build_docker.sh
DOCKER_ORG
=
${
DOCKER_ORG
:-
"ollama"
}
DOCKER_ORG
=
${
DOCKER_ORG
:-
"ollama"
}
ARCH
_IMAGE_REPO
=
${
ARCH
_IMAGE_REPO
:-
"
${
DOCKER_ORG
}
/release"
}
RELEASE
_IMAGE_REPO
=
${
RELEASE
_IMAGE_REPO
:-
"
${
DOCKER_ORG
}
/release"
}
FINAL_IMAGE_REPO
=
${
FINAL_IMAGE_REPO
:-
"
${
DOCKER_ORG
}
/ollama"
}
FINAL_IMAGE_REPO
=
${
FINAL_IMAGE_REPO
:-
"
${
DOCKER_ORG
}
/ollama"
}
BUILD_ARCH
=
${
BUILD_ARCH
:-
"amd64 arm64"
}
BUILD_ARCH
=
${
BUILD_ARCH
:-
"amd64 arm64"
}
...
@@ -25,7 +25,7 @@ OLLAMA_SKIP_IMAGE_BUILD=${OLLAMA_SKIP_IMAGE_BUILD:-""}
...
@@ -25,7 +25,7 @@ OLLAMA_SKIP_IMAGE_BUILD=${OLLAMA_SKIP_IMAGE_BUILD:-""}
if
[
-z
"
${
PUSH
}
"
]
;
then
if
[
-z
"
${
PUSH
}
"
]
;
then
LOAD_OR_PUSH
=
"--load"
LOAD_OR_PUSH
=
"--load"
else
else
echo
"Will be pushing
${
ARCH
_IMAGE_REPO
}
:
$VERSION
for
${
BUILD_ARCH
}
"
echo
"Will be pushing
${
RELEASE
_IMAGE_REPO
}
:
$VERSION
for
${
BUILD_ARCH
}
"
LOAD_OR_PUSH
=
"--push"
LOAD_OR_PUSH
=
"--push"
fi
fi
...
@@ -37,7 +37,7 @@ if [ -z "${OLLAMA_SKIP_IMAGE_BUILD}" ]; then
...
@@ -37,7 +37,7 @@ if [ -z "${OLLAMA_SKIP_IMAGE_BUILD}" ]; then
--build-arg
=
VERSION
\
--build-arg
=
VERSION
\
--build-arg
=
GOFLAGS
\
--build-arg
=
GOFLAGS
\
-f
Dockerfile
\
-f
Dockerfile
\
-t
${
ARCH
_IMAGE_REPO
}
:
$VERSION
-
${
TARGETARCH
}
\
-t
${
RELEASE
_IMAGE_REPO
}
:
$VERSION
-
${
TARGETARCH
}
\
.
.
done
done
...
@@ -49,7 +49,7 @@ if [ -z "${OLLAMA_SKIP_IMAGE_BUILD}" ]; then
...
@@ -49,7 +49,7 @@ if [ -z "${OLLAMA_SKIP_IMAGE_BUILD}" ]; then
--build-arg
=
GOFLAGS
\
--build-arg
=
GOFLAGS
\
--target
runtime-rocm
\
--target
runtime-rocm
\
-f
Dockerfile
\
-f
Dockerfile
\
-t
${
ARCH
_IMAGE_REPO
}
:
$VERSION
-rocm
\
-t
${
RELEASE
_IMAGE_REPO
}
:
$VERSION
-rocm
\
.
.
fi
fi
fi
fi
...
@@ -57,21 +57,21 @@ fi
...
@@ -57,21 +57,21 @@ fi
if
[
-z
"
${
OLLAMA_SKIP_MANIFEST_CREATE
}
"
]
;
then
if
[
-z
"
${
OLLAMA_SKIP_MANIFEST_CREATE
}
"
]
;
then
if
[
-n
"
${
PUSH
}
"
]
;
then
if
[
-n
"
${
PUSH
}
"
]
;
then
docker manifest create
${
FINAL_IMAGE_REPO
}
:
$VERSION
\
docker manifest create
${
FINAL_IMAGE_REPO
}
:
$VERSION
\
${
ARCH
_IMAGE_REPO
}
:
$VERSION
-amd64
\
${
RELEASE
_IMAGE_REPO
}
:
$VERSION
-amd64
\
${
ARCH
_IMAGE_REPO
}
:
$VERSION
-arm64
${
RELEASE
_IMAGE_REPO
}
:
$VERSION
-arm64
docker manifest push
${
FINAL_IMAGE_REPO
}
:
$VERSION
docker manifest push
${
FINAL_IMAGE_REPO
}
:
$VERSION
# For symmetry, tag/push the rocm image
# For symmetry, tag/push the rocm image
if
[
"
${
ARCH
_IMAGE_REPO
}
"
!=
"
${
FINAL_IMAGE_REPO
}
"
]
;
then
if
[
"
${
RELEASE
_IMAGE_REPO
}
"
!=
"
${
FINAL_IMAGE_REPO
}
"
]
;
then
echo
"Tagging and pushing rocm image"
echo
"Tagging and pushing rocm image"
docker pull
${
ARCH
_IMAGE_REPO
}
:
$VERSION
-rocm
docker pull
${
RELEASE
_IMAGE_REPO
}
:
$VERSION
-rocm
docker tag
${
ARCH
_IMAGE_REPO
}
:
$VERSION
-rocm
${
FINAL_IMAGE_REPO
}
:
$VERSION
-rocm
docker tag
${
RELEASE
_IMAGE_REPO
}
:
$VERSION
-rocm
${
FINAL_IMAGE_REPO
}
:
$VERSION
-rocm
docker push
${
FINAL_IMAGE_REPO
}
:
$VERSION
-rocm
docker push
${
FINAL_IMAGE_REPO
}
:
$VERSION
-rocm
fi
fi
else
else
echo
"Skipping manifest generation when not pushing images are available locally as "
echo
"Skipping manifest generation when not pushing images are available locally as "
echo
"
${
ARCH
_IMAGE_REPO
}
:
$VERSION
-amd64"
echo
"
${
RELEASE
_IMAGE_REPO
}
:
$VERSION
-amd64"
echo
"
${
ARCH
_IMAGE_REPO
}
:
$VERSION
-arm64"
echo
"
${
RELEASE
_IMAGE_REPO
}
:
$VERSION
-arm64"
echo
"
${
ARCH
_IMAGE_REPO
}
:
$VERSION
-rocm"
echo
"
${
RELEASE
_IMAGE_REPO
}
:
$VERSION
-rocm"
fi
fi
fi
fi
scripts/tag_latest.sh
0 → 100755
View file @
97ae517f
#!/bin/sh
set
-eu
# We use 2 different image repositories to handle combining architecture images into multiarch manifest
# (The ROCm image is x86 only and is not a multiarch manifest)
# For developers, you can override the DOCKER_ORG to generate multiarch manifests
# DOCKER_ORG=jdoe VERSION=0.1.30 PUSH=1 ./scripts/tag_latest.sh
DOCKER_ORG
=
${
DOCKER_ORG
:-
"ollama"
}
RELEASE_IMAGE_REPO
=
${
RELEASE_IMAGE_REPO
:-
"
${
DOCKER_ORG
}
/release"
}
FINAL_IMAGE_REPO
=
${
FINAL_IMAGE_REPO
:-
"
${
DOCKER_ORG
}
/ollama"
}
# Set PUSH to a non-empty string to trigger push instead of load
PUSH
=
${
PUSH
:-
""
}
echo
"Assembling manifest and tagging latest"
docker manifest
rm
${
FINAL_IMAGE_REPO
}
:latest
||
true
docker manifest create
${
FINAL_IMAGE_REPO
}
:latest
\
${
RELEASE_IMAGE_REPO
}
:
$VERSION
-amd64
\
${
RELEASE_IMAGE_REPO
}
:
$VERSION
-arm64
docker pull
${
RELEASE_IMAGE_REPO
}
:
$VERSION
-rocm
docker tag
${
RELEASE_IMAGE_REPO
}
:
$VERSION
-rocm
${
FINAL_IMAGE_REPO
}
:rocm
if
[
-n
"
${
PUSH
}
"
]
;
then
echo
"Pushing latest tags up..."
docker manifest push
${
FINAL_IMAGE_REPO
}
:latest
docker push
${
FINAL_IMAGE_REPO
}
:rocm
else
echo
"Not pushing
${
FINAL_IMAGE_REPO
}
:latest and
${
FINAL_IMAGE_REPO
}
:rocm"
fi
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment