Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Commit f0d90af

Browse files
authored
Merge pull request #302 from janhq/chore/add-flag-version-ci
Add nitro version flag to ci
2 parents 424e03f + 090be57 commit f0d90af

File tree

1 file changed

+62
-20
lines changed

1 file changed

+62
-20
lines changed

.github/workflows/build.yml

Lines changed: 62 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,52 @@ jobs:
4343
draft: true
4444
prerelease: false
4545

46+
# Get the latest version of the release
47+
set-nitro-version:
48+
runs-on: ubuntu-latest
49+
outputs:
50+
version: ${{ steps.version_update.outputs.new_version }}
51+
steps:
52+
- name: Get latest release
53+
id: version_update
54+
run: |
55+
if [[ ${{ github.event_name }} == push && ${{ github.ref }} == refs/tags/* ]]; then
56+
echo "VERSION=${GITHUB_REF#refs/tags/}"
57+
NEW_VERSION="${VERSION#v}"
58+
echo "::set-output name=new_version::$NEW_VERSION"
59+
else
60+
# Function to get the latest release tag
61+
get_latest_tag() {
62+
local retries=0
63+
local max_retries=3
64+
local tag
65+
while [ $retries -lt $max_retries ]; do
66+
tag=$(curl -s https://api.github.com/repos/janhq/nitro/releases/latest | jq -r .tag_name)
67+
if [ -n "$tag" ] && [ "$tag" != "null" ]; then
68+
echo $tag
69+
return
70+
else
71+
let retries++
72+
sleep 2
73+
fi
74+
done
75+
echo "Failed to fetch latest tag after $max_retries attempts."
76+
exit 1
77+
}
78+
# Get the latest release tag from GitHub API
79+
LATEST_TAG=$(get_latest_tag)
80+
81+
# Remove the 'v' and append the build number to the version
82+
NEW_VERSION="${LATEST_TAG#v}-${GITHUB_RUN_NUMBER}"
83+
echo "New version: $NEW_VERSION"
84+
echo "::set-output name=new_version::$NEW_VERSION"
85+
fi
86+
echo "Version: $NEW_VERSION"
87+
4688
ubuntu-amd64-build:
4789
runs-on: ubuntu-latest
48-
needs: create-draft-release
49-
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped')
90+
needs: [create-draft-release, set-nitro-version]
91+
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
5092
permissions:
5193
contents: write
5294
steps:
@@ -67,7 +109,7 @@ jobs:
67109
run: |
68110
./install_deps.sh
69111
mkdir build && cd build
70-
cmake -DDEBUG=ON -DLLAMA_NATIVE=OFF ..
112+
cmake -DDEBUG=ON -DLLAMA_NATIVE=OFF -DNITRO_VERSION=${{ needs.set-nitro-version.outputs.version }} ..
71113
CC=gcc-8 make -j $(nproc)
72114
ls -la
73115
@@ -104,8 +146,8 @@ jobs:
104146

105147
ubuntu-amd64-cuda-build:
106148
runs-on: linux-gpu
107-
needs: create-draft-release
108-
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped')
149+
needs: [create-draft-release, set-nitro-version]
150+
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
109151
permissions:
110152
contents: write
111153
steps:
@@ -126,7 +168,7 @@ jobs:
126168
run: |
127169
./install_deps.sh
128170
mkdir build && cd build
129-
cmake -DDEBUG=ON -DLLAMA_CUBLAS=ON -DLLAMA_NATIVE=OFF ..
171+
cmake -DDEBUG=ON -DLLAMA_CUBLAS=ON -DLLAMA_NATIVE=OFF -DNITRO_VERSION=${{ needs.set-nitro-version.outputs.version }} ..
130172
CC=gcc-8 make -j $(nproc)
131173
ls -la
132174
@@ -163,8 +205,8 @@ jobs:
163205

164206
macOS-M-build:
165207
runs-on: mac-silicon
166-
needs: create-draft-release
167-
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped')
208+
needs: [create-draft-release, set-nitro-version]
209+
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
168210
permissions:
169211
contents: write
170212
steps:
@@ -186,7 +228,7 @@ jobs:
186228
run: |
187229
./install_deps.sh
188230
mkdir build && cd build
189-
cmake ..
231+
cmake -DNITRO_VERSION=${{ needs.set-nitro-version.outputs.version }} ..
190232
CC=gcc-8 make -j $(sysctl -n hw.ncp)
191233
ls -la
192234
@@ -224,8 +266,8 @@ jobs:
224266

225267
macOS-Intel-build:
226268
runs-on: macos-latest
227-
needs: create-draft-release
228-
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped')
269+
needs: [create-draft-release, set-nitro-version]
270+
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
229271
permissions:
230272
contents: write
231273
steps:
@@ -246,7 +288,7 @@ jobs:
246288
run: |
247289
./install_deps.sh
248290
mkdir build && cd build
249-
cmake -DLLAMA_METAL=OFF ..
291+
cmake -DNITRO_VERSION=${{ needs.set-nitro-version.outputs.version }} -DLLAMA_METAL=OFF ..
250292
CC=gcc-8 make -j $(sysctl -n hw.ncp)
251293
ls -la
252294
@@ -283,8 +325,8 @@ jobs:
283325

284326
windows-amd64-build:
285327
runs-on: windows-latest
286-
needs: create-draft-release
287-
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped')
328+
needs: [create-draft-release, set-nitro-version]
329+
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
288330
permissions:
289331
contents: write
290332

@@ -315,7 +357,7 @@ jobs:
315357
cmake --build ./build_deps/nitro_deps --config Release
316358
mkdir -p build
317359
cd build
318-
cmake .. -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=ON
360+
cmake .. -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=ON -DNITRO_VERSION=${{ needs.set-nitro-version.outputs.version }}
319361
cmake --build . --config Release -j "%NUMBER_OF_PROCESSORS%"
320362
321363
- name: Pack artifacts
@@ -354,8 +396,8 @@ jobs:
354396

355397
windows-amd64-cuda-build:
356398
runs-on: windows-nvidia
357-
needs: create-draft-release
358-
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped')
399+
needs: [create-draft-release, set-nitro-version]
400+
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
359401
permissions:
360402
contents: write
361403

@@ -386,7 +428,7 @@ jobs:
386428
cmake --build ./build_deps/nitro_deps --config Release
387429
mkdir -p build
388430
cd build
389-
cmake .. -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUBLAS=ON -DBUILD_SHARED_LIBS=ON
431+
cmake .. -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUBLAS=ON -DBUILD_SHARED_LIBS=ON -DNITRO_VERSION=${{ needs.set-nitro-version.outputs.version }}
390432
cmake --build . --config Release -j "%NUMBER_OF_PROCESSORS%"
391433
392434
- name: Pack artifacts
@@ -426,8 +468,8 @@ jobs:
426468

427469
windows-amd64-cuda-package:
428470
runs-on: windows-latest
429-
needs: create-draft-release
430-
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped')
471+
needs: [create-draft-release, set-nitro-version]
472+
if: always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
431473
permissions:
432474
contents: write
433475

0 commit comments

Comments
 (0)