Update create-new-release-on-push.yml
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
name: Create new release on push
|
name: 👀 Check for new ollama stable releases and builds a new custom image release if needed
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
schedule:
|
||||||
branches:
|
- cron: '0 8 * * *' # Every day at 8am
|
||||||
- master
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check-new-release:
|
check-new-release:
|
||||||
@@ -15,15 +15,13 @@ jobs:
|
|||||||
outputs:
|
outputs:
|
||||||
has_new_release: ${{ steps.new_release_check.outputs.has_new_release }}
|
has_new_release: ${{ steps.new_release_check.outputs.has_new_release }}
|
||||||
version_to_release: ${{ steps.ollama_version.outputs.version_to_release }}
|
version_to_release: ${{ steps.ollama_version.outputs.version_to_release }}
|
||||||
next_version_suffix: ${{ steps.new_release_check.outputs.next_version_suffix }}
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 👀 Get the latest ollama-serverless stable release
|
- name: 🆕 Get the latest ollama release
|
||||||
id: custom_image_release
|
id: custom_image_release
|
||||||
uses: pozetroninc/github-action-get-latest-release@v0.8.0
|
uses: dvershinin/lastversion-action@main
|
||||||
with:
|
with:
|
||||||
repository: SvenBrnn/runpod-worker-ollama
|
repository: 'SvenBrnn/runpod-worker-ollama'
|
||||||
excludes: prerelease,draft
|
|
||||||
|
|
||||||
- name: 🆕 Get the latest ollama release
|
- name: 🆕 Get the latest ollama release
|
||||||
id: ollama_release
|
id: ollama_release
|
||||||
@@ -34,39 +32,21 @@ jobs:
|
|||||||
- name: 🤲 Check if it is a newer ollama release
|
- name: 🤲 Check if it is a newer ollama release
|
||||||
id: new_release_check
|
id: new_release_check
|
||||||
run: |
|
run: |
|
||||||
echo "👀 Latest Codely custom image release: ${{ steps.custom_image_release.outputs.release }}"
|
echo "👀 Latest Codely custom image release: ${{ steps.custom_image_release.outputs.last_version }}"
|
||||||
echo "🆕 Latest ollama release: ${{ steps.ollama_release.outputs.last_version }}"
|
echo "🆕 Latest ollama release: ${{ steps.ollama_release.outputs.last_version }}"
|
||||||
|
|
||||||
custom_version_orig=$(echo "${{ steps.custom_image_release.outputs.release }}" | sed 's/ollama@//g')
|
custom_version_orig=$(echo "${{ steps.custom_image_release.outputs.last_version }}" | sed 's/ollama@//g')
|
||||||
custom_version=$(echo "$custom_version_orig" | sed 's/-[0-9]*//g') # Remove the suffix
|
custom_version=$(echo "$custom_version_orig" | sed 's/-[0-9]*//g') # Remove the suffix
|
||||||
ollama_version=$(echo "${{ steps.ollama_release.outputs.last_version }}" | sed 's/ollama@//g')
|
ollama_version=$(echo "${{ steps.ollama_release.outputs.last_version }}" | sed 's/ollama@//g')
|
||||||
|
|
||||||
latest_version=$(echo -e "$custom_version\n$ollama_version" | sort -V | tail -n1)
|
latest_version=$(echo -e "$custom_version\n$ollama_version" | sort -V | tail -n1)
|
||||||
echo "has_new_release=true" >> $GITHUB_OUTPUT
|
|
||||||
|
if [ "$custom_version" != "$latest_version" ]; then
|
||||||
# Debug print
|
echo "has_new_release=true" >> $GITHUB_OUTPUT
|
||||||
echo "custom_version_orig=$custom_version_orig"
|
echo "🤩 New release detected! Releasing new custom image version in 1, 2…"
|
||||||
echo "custom_version=$custom_version"
|
|
||||||
echo "ollama_version=$ollama_version"
|
|
||||||
|
|
||||||
# Calculate the next_version_suffix to compare with the new release
|
|
||||||
# If the custom_version does not equal the latest_version, then it is a new release and we don't need a suffix
|
|
||||||
if [ "$custom_version" != "$ollama_version" ]; then
|
|
||||||
echo "next_version_suffix=" >> $GITHUB_OUTPUT
|
|
||||||
else
|
else
|
||||||
# If the custom_version equals the latest_version, then it is a new release and we need to increment the suffix
|
echo "has_new_release=false" >> $GITHUB_OUTPUT
|
||||||
# If there is no suffix present we start with 1
|
echo "👍 Release has not changed or it is previous to the current one. Doing nothing."
|
||||||
# Check if we have a - first
|
|
||||||
has_suffix=$(echo "$custom_version_orig" | sed 's/[^-]//g')
|
|
||||||
if [ -z "$has_suffix" ]; then
|
|
||||||
suffix="-1"
|
|
||||||
else
|
|
||||||
suffix=$(echo "$custom_version_orig" | grep -o '[0-9]*$')
|
|
||||||
suffix="-$((suffix + 1))"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "next_version_suffix=$suffix"
|
|
||||||
echo "next_version_suffix=$suffix" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: 🔡 Remove 'ollama@' from release name to get the version
|
- name: 🔡 Remove 'ollama@' from release name to get the version
|
||||||
@@ -75,13 +55,37 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
version_to_release=$(echo "${{ steps.ollama_release.outputs.last_version }}" | sed 's/ollama@//g')
|
version_to_release=$(echo "${{ steps.ollama_release.outputs.last_version }}" | sed 's/ollama@//g')
|
||||||
echo "version_to_release=$version_to_release" >> $GITHUB_OUTPUT
|
echo "version_to_release=$version_to_release" >> $GITHUB_OUTPUT
|
||||||
echo "next_version_suffix=${{ steps.new_release_check.outputs.next_version_suffix }}" >> $GITHUB_OUTPUT
|
|
||||||
|
patch-dockerfile-and-push:
|
||||||
|
needs: check-new-release
|
||||||
|
if: ${{ needs.check-new-release.outputs.has_new_release == 'true' }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Patch Dockerfile with new OLLAMA_VERSION
|
||||||
|
run: |
|
||||||
|
sed -i '1s/^ARG OLLAMA_VERSION=.*/ARG OLLAMA_VERSION=${{ needs.check-new-release.outputs.version_to_release }}/' Dockerfile
|
||||||
|
|
||||||
|
- name: Commit and push changes
|
||||||
|
run: |
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
git add Dockerfile
|
||||||
|
if ! git diff --cached --quiet; then
|
||||||
|
git commit -m "chore: bump OLLAMA_VERSION to ${{ needs.check-new-release.outputs.version_to_release }}"
|
||||||
|
git push
|
||||||
|
else
|
||||||
|
echo "No changes to commit."
|
||||||
|
fi
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
build-and-push-new-docker-image:
|
build-and-push-new-docker-image:
|
||||||
needs: check-new-release
|
needs: patch-dockerfile-and-push
|
||||||
if: ${{ needs.check-new-release.outputs.has_new_release == 'true' }}
|
if: ${{ needs.check-new-release.outputs.has_new_release == 'true' }}
|
||||||
uses: ./.github/workflows/build-and-push.yml
|
uses: ./.github/workflows/build-and-push.yml
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
with:
|
with:
|
||||||
ollama_version: ${{ needs.check-new-release.outputs.version_to_release }}
|
ollama_version: ${{ needs.check-new-release.outputs.version_to_release }}
|
||||||
next_version_suffix: ${{ needs.check-new-release.outputs.next_version_suffix }}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user