From 67266400681292ebc447d71523e23b68e4f560f6 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 14:36:49 +0100 Subject: [PATCH 01/14] ollama-utils: add cronjob --- .github/workflows/ollama-template-update.yml | 81 ++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 .github/workflows/ollama-template-update.yml diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml new file mode 100644 index 0000000000..a71fb853fb --- /dev/null +++ b/.github/workflows/ollama-template-update.yml @@ -0,0 +1,81 @@ +name: Ollama template update +on: + push: # for debugging + workflow_dispatch: + #schedule: + # - cron: '0 7 * * 1' # every monday at 7am, so I'll review it after having a 🥐 + +permissions: + pull-requests: write # for creating PR + issues: write # for adding labels to the created PR + contents: write # for git push new branch + +jobs: + create-pull-request: + runs-on: ubuntu-latest + steps: + - name: Prepare + id: prepare + run: | + git config --global --add safe.directory "$GITHUB_WORKSPACE" + npm install -g pnpm + CURRENT_DATE=$(date -u +"%Y-%m-%d") + echo "CURRENT_DATE=$CURRENT_DATE" >> $GITHUB_ENV + + - name: Run update script + run: | + cd packages/ollama-utils + pnpm install --frozen-lockfile + pnpm run build:automap + + - name: Check for changed files + id: changes + env: + CURRENT_DATE: ${{ steps.prepare.outputs.CURRENT_DATE }} + run: | + set -x + git status + modified_files="$(git status -s)" + echo "Modified files: ${modified_files}" + if [ -n "${modified_files}" ]; then + echo "Changes detected, will create a new branch:" + echo "${modified_files}" + git add -A + git commit -m "ollama update ${CURRENT_DATE}" + git checkout -b "ollama/${CURRENT_DATE}" + git push origin "ollama/${CURRENT_DATE}" + echo "HAS_CHANGES=true" >> $GITHUB_OUTPUT + else + echo "No files changed, skipping..." + echo "HAS_CHANGES=false" >> $GITHUB_OUTPUT + fi + + - name: Create PR + if: steps.changes.outputs.HAS_CHANGES == 'true' + uses: actions/github-script@v6 + env: + CURRENT_DATE: ${{ steps.prepare.outputs.CURRENT_DATE }} + with: + script: | + const { repo, owner } = context.repo; + const currDate = process.env.CURRENT_DATE; + + const result = await github.rest.pulls.create({ + title: '[ollama-utils] 🤖 Auto-update chat templates (' + currDate + ')', + owner, + repo, + head: '${{ github.ref_name }}', + base: 'main', + body: [ + 'This PR is auto-generated by', + '[generate-automap.ts](https://github.com/huggingface/huggingface.js/blob/main/packages/ollama-utils/scripts/generate-automap.ts).' + ].join('\n') + }); + + console.log({ result }); + // github.rest.issues.addLabels({ + // owner, + // repo, + // issue_number: result.data.number, + // labels: ['feature', 'automated pr'] + // }); From cf8413311137ef28810cf41f37d574522f0a7756 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 14:38:28 +0100 Subject: [PATCH 02/14] missing checkout step --- .github/workflows/ollama-template-update.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index a71fb853fb..e587f42154 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -14,6 +14,7 @@ jobs: create-pull-request: runs-on: ubuntu-latest steps: + - uses: actions/checkout@v3 - name: Prepare id: prepare run: | From 430685d2b3e1f2c1d156ab1c51d329a562385d72 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 14:43:17 +0100 Subject: [PATCH 03/14] skip on error --- .github/workflows/ollama-template-update.yml | 6 +- .../ollama-utils/scripts/generate-automap.ts | 69 ++++++++++--------- 2 files changed, 42 insertions(+), 33 deletions(-) diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index e587f42154..458f359a8e 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -23,10 +23,14 @@ jobs: CURRENT_DATE=$(date -u +"%Y-%m-%d") echo "CURRENT_DATE=$CURRENT_DATE" >> $GITHUB_ENV - - name: Run update script + - name: Install dependencies run: | cd packages/ollama-utils pnpm install --frozen-lockfile + + - name: Run update script + run: | + cd packages/ollama-utils pnpm run build:automap - name: Check for changed files diff --git a/packages/ollama-utils/scripts/generate-automap.ts b/packages/ollama-utils/scripts/generate-automap.ts index f6774197a0..5d44215888 100644 --- a/packages/ollama-utils/scripts/generate-automap.ts +++ b/packages/ollama-utils/scripts/generate-automap.ts @@ -137,44 +137,49 @@ const getSpecialTokens = (tmpl: string): string[] => { try { ggufData = await gguf(modelUrl); } catch (e) { - console.log(" --> [X] FATAL: GGUF error", { model, tag, modelUrl }); - throw e; // rethrow + console.log(` --> [X] Skipping ${modelWithTag} due to error while calling gguf()`, e); + continue; } const { metadata } = ggufData; const ggufTmpl = metadata["tokenizer.chat_template"]; if (ggufTmpl) { - if (seenGGUFTemplate.has(ggufTmpl)) { - console.log(" --> Already seen this GGUF template, skip..."); - continue; - } - seenGGUFTemplate.add(ggufTmpl); - console.log(" --> GGUF chat template OK"); - const tmplBlob = manifest.layers.find((l) => l.mediaType.match(/\.template/)); - if (!tmplBlob) continue; - const ollamaTmplUrl = getBlobUrl(tmplBlob.digest); - if (!ollamaTmplUrl) { - console.log(" --> [X] No ollama template"); + try { + if (seenGGUFTemplate.has(ggufTmpl)) { + console.log(" --> Already seen this GGUF template, skip..."); + continue; + } + seenGGUFTemplate.add(ggufTmpl); + console.log(" --> GGUF chat template OK"); + const tmplBlob = manifest.layers.find((l) => l.mediaType.match(/\.template/)); + if (!tmplBlob) continue; + const ollamaTmplUrl = getBlobUrl(tmplBlob.digest); + if (!ollamaTmplUrl) { + console.log(" --> [X] No ollama template"); + continue; + } + const ollamaTmpl = await (await fetch(ollamaTmplUrl)).text(); + console.log(" --> All OK"); + const record: OutputItem = { + model: modelWithTag, + gguf: ggufTmpl, + ollama: { + template: ollamaTmpl, + tokens: getSpecialTokens(ggufTmpl), + }, + }; + // get params + const ollamaParamsBlob = manifest.layers.find((l) => l.mediaType.match(/\.params/)); + const ollamaParamsUrl = ollamaParamsBlob ? getBlobUrl(ollamaParamsBlob.digest) : null; + if (ollamaParamsUrl) { + console.log(" --> Got params"); + record.ollama.params = await (await fetch(ollamaParamsUrl)).json(); + } + output.push(record); + if (DEBUG) appendFileSync("ollama_tmp.jsonl", JSON.stringify(record) + "\n"); + } catch (e) { + console.log(` --> [X] Skipping ${modelWithTag} due to error`, e); continue; } - const ollamaTmpl = await (await fetch(ollamaTmplUrl)).text(); - console.log(" --> All OK"); - const record: OutputItem = { - model: modelWithTag, - gguf: ggufTmpl, - ollama: { - template: ollamaTmpl, - tokens: getSpecialTokens(ggufTmpl), - }, - }; - // get params - const ollamaParamsBlob = manifest.layers.find((l) => l.mediaType.match(/\.params/)); - const ollamaParamsUrl = ollamaParamsBlob ? getBlobUrl(ollamaParamsBlob.digest) : null; - if (ollamaParamsUrl) { - console.log(" --> Got params"); - record.ollama.params = await (await fetch(ollamaParamsUrl)).json(); - } - output.push(record); - if (DEBUG) appendFileSync("ollama_tmp.jsonl", JSON.stringify(record) + "\n"); } else { console.log(" --> [X] No GGUF template"); continue; From 08af444bf9860515feeb6e5a94c6df458aee4e31 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 14:50:24 +0100 Subject: [PATCH 04/14] better tracking --- .github/workflows/ollama-template-update.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index 458f359a8e..ad9769b373 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -18,6 +18,8 @@ jobs: - name: Prepare id: prepare run: | + git config --global user.email "son@huggingface.co" + git config --global user.name "Xuan-Son Nguyen" git config --global --add safe.directory "$GITHUB_WORKSPACE" npm install -g pnpm CURRENT_DATE=$(date -u +"%Y-%m-%d") From 153c24538346833cf1393d1dea50c2fbc9ca2255 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 14:50:28 +0100 Subject: [PATCH 05/14] fix git commit error --- .../ollama-utils/scripts/generate-automap.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/ollama-utils/scripts/generate-automap.ts b/packages/ollama-utils/scripts/generate-automap.ts index 5d44215888..53b3cc512e 100644 --- a/packages/ollama-utils/scripts/generate-automap.ts +++ b/packages/ollama-utils/scripts/generate-automap.ts @@ -107,6 +107,9 @@ const getSpecialTokens = (tmpl: string): string[] => { nDoing = 0; nAll = modelsWithTag.length; + const addedModels: string[] = []; + const skippedModelsDueToErr: string[] = []; + const workerGetTemplate = async () => { while (true) { const modelWithTag = modelsWithTag.shift(); @@ -138,6 +141,7 @@ const getSpecialTokens = (tmpl: string): string[] => { ggufData = await gguf(modelUrl); } catch (e) { console.log(` --> [X] Skipping ${modelWithTag} due to error while calling gguf()`, e); + skippedModelsDueToErr.push(modelWithTag); continue; } const { metadata } = ggufData; @@ -175,9 +179,11 @@ const getSpecialTokens = (tmpl: string): string[] => { record.ollama.params = await (await fetch(ollamaParamsUrl)).json(); } output.push(record); + addedModels.push(modelWithTag); if (DEBUG) appendFileSync("ollama_tmp.jsonl", JSON.stringify(record) + "\n"); } catch (e) { console.log(` --> [X] Skipping ${modelWithTag} due to error`, e); + skippedModelsDueToErr.push(modelWithTag); continue; } } else { @@ -195,7 +201,13 @@ const getSpecialTokens = (tmpl: string): string[] => { .map(() => workerGetTemplate()) ); + console.log("===================================="); console.log("DONE"); + console.log("Added templates for:"); + console.log(addedModels.join("\n")); + console.log("Skipped these models due to error:"); + console.log(skippedModelsDueToErr.join("\n")); + output.sort((a, b) => a.model.localeCompare(b.model)); writeFileSync( @@ -206,6 +218,11 @@ const getSpecialTokens = (tmpl: string): string[] => { import { OllamaChatTemplateMapEntry } from "./types"; +/** + * Skipped these models due to error: +${skippedModelsDueToErr.map((m) => ` * - ${m}`).join("\n")} + */ + export const OLLAMA_CHAT_TEMPLATE_MAPPING: OllamaChatTemplateMapEntry[] = ${JSON.stringify(output, null, "\t")}; `.trim() ); From 4340cd8269a043045c86930702b38c1798870435 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 14:54:09 +0100 Subject: [PATCH 06/14] fix git commit again --- .github/workflows/ollama-template-update.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index ad9769b373..0314b1a015 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -33,7 +33,8 @@ jobs: - name: Run update script run: | cd packages/ollama-utils - pnpm run build:automap + # pnpm run build:automap + echo test > ./test - name: Check for changed files id: changes @@ -49,8 +50,8 @@ jobs: echo "${modified_files}" git add -A git commit -m "ollama update ${CURRENT_DATE}" - git checkout -b "ollama/${CURRENT_DATE}" - git push origin "ollama/${CURRENT_DATE}" + git checkout -b "ollama-${CURRENT_DATE}" + git push origin "ollama-${CURRENT_DATE}" echo "HAS_CHANGES=true" >> $GITHUB_OUTPUT else echo "No files changed, skipping..." From cf4948912af5f002a13bc24d1a8d16487edbcc6d Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 15:02:35 +0100 Subject: [PATCH 07/14] fix --- .github/workflows/ollama-template-update.yml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index 0314b1a015..b2bd6d0a50 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -15,22 +15,27 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + - name: Prepare id: prepare + shell: bash run: | git config --global user.email "son@huggingface.co" git config --global user.name "Xuan-Son Nguyen" git config --global --add safe.directory "$GITHUB_WORKSPACE" npm install -g pnpm CURRENT_DATE=$(date -u +"%Y-%m-%d") + echo "CURRENT_DATE=$CURRENT_DATE" echo "CURRENT_DATE=$CURRENT_DATE" >> $GITHUB_ENV - name: Install dependencies + shell: bash run: | cd packages/ollama-utils pnpm install --frozen-lockfile - name: Run update script + shell: bash run: | cd packages/ollama-utils # pnpm run build:automap @@ -38,6 +43,7 @@ jobs: - name: Check for changed files id: changes + shell: bash env: CURRENT_DATE: ${{ steps.prepare.outputs.CURRENT_DATE }} run: | @@ -46,13 +52,16 @@ jobs: modified_files="$(git status -s)" echo "Modified files: ${modified_files}" if [ -n "${modified_files}" ]; then + NEW_BRANCH="ollama-${CURRENT_DATE}" + echo "NEW_BRANCH=${NEW_BRANCH}" echo "Changes detected, will create a new branch:" echo "${modified_files}" git add -A git commit -m "ollama update ${CURRENT_DATE}" - git checkout -b "ollama-${CURRENT_DATE}" - git push origin "ollama-${CURRENT_DATE}" + git checkout -b "${NEW_BRANCH}" + git push origin "${NEW_BRANCH}" echo "HAS_CHANGES=true" >> $GITHUB_OUTPUT + echo "NEW_BRANCH=${NEW_BRANCH}" >> $GITHUB_OUTPUT else echo "No files changed, skipping..." echo "HAS_CHANGES=false" >> $GITHUB_OUTPUT @@ -63,16 +72,18 @@ jobs: uses: actions/github-script@v6 env: CURRENT_DATE: ${{ steps.prepare.outputs.CURRENT_DATE }} + NEW_BRANCH: ${{ steps.prepare.outputs.NEW_BRANCH }} with: script: | const { repo, owner } = context.repo; const currDate = process.env.CURRENT_DATE; + const newBranch = process.env.NEW_BRANCH; const result = await github.rest.pulls.create({ title: '[ollama-utils] 🤖 Auto-update chat templates (' + currDate + ')', owner, repo, - head: '${{ github.ref_name }}', + head: newBranch, base: 'main', body: [ 'This PR is auto-generated by', From b24f84d723570f1ee943ea3af4e62f51c607c575 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 15:05:05 +0100 Subject: [PATCH 08/14] okay --- .github/workflows/ollama-template-update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index b2bd6d0a50..b583e3567d 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -26,7 +26,7 @@ jobs: npm install -g pnpm CURRENT_DATE=$(date -u +"%Y-%m-%d") echo "CURRENT_DATE=$CURRENT_DATE" - echo "CURRENT_DATE=$CURRENT_DATE" >> $GITHUB_ENV + echo "CURRENT_DATE=$CURRENT_DATE" >> $GITHUB_OUTPUT - name: Install dependencies shell: bash From 2f7fec654e926f7e4104426b86ecbfd1530a75e5 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 15:06:41 +0100 Subject: [PATCH 09/14] ok 2 --- .github/workflows/ollama-template-update.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index b583e3567d..b0498e850d 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -59,7 +59,7 @@ jobs: git add -A git commit -m "ollama update ${CURRENT_DATE}" git checkout -b "${NEW_BRANCH}" - git push origin "${NEW_BRANCH}" + git push -f origin "${NEW_BRANCH}" echo "HAS_CHANGES=true" >> $GITHUB_OUTPUT echo "NEW_BRANCH=${NEW_BRANCH}" >> $GITHUB_OUTPUT else @@ -72,7 +72,7 @@ jobs: uses: actions/github-script@v6 env: CURRENT_DATE: ${{ steps.prepare.outputs.CURRENT_DATE }} - NEW_BRANCH: ${{ steps.prepare.outputs.NEW_BRANCH }} + NEW_BRANCH: ${{ steps.changes.outputs.NEW_BRANCH }} with: script: | const { repo, owner } = context.repo; From 88173236462bd1a07f8f293d1ab34572df5a96a9 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 15:09:41 +0100 Subject: [PATCH 10/14] only add single file --- .github/workflows/ollama-template-update.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index b0498e850d..53685315e0 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -38,8 +38,7 @@ jobs: shell: bash run: | cd packages/ollama-utils - # pnpm run build:automap - echo test > ./test + pnpm run build:automap - name: Check for changed files id: changes @@ -48,6 +47,9 @@ jobs: CURRENT_DATE: ${{ steps.prepare.outputs.CURRENT_DATE }} run: | set -x + + FILE_TO_ADD="packages/ollama-utils/chat-template-automap.ts" + git status modified_files="$(git status -s)" echo "Modified files: ${modified_files}" @@ -56,7 +58,7 @@ jobs: echo "NEW_BRANCH=${NEW_BRANCH}" echo "Changes detected, will create a new branch:" echo "${modified_files}" - git add -A + git add "${FILE_TO_ADD}" git commit -m "ollama update ${CURRENT_DATE}" git checkout -b "${NEW_BRANCH}" git push -f origin "${NEW_BRANCH}" From 6e2f8c86741aa790235e37f32f6bc833ad9b8fe8 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 15:12:59 +0100 Subject: [PATCH 11/14] add codeowner --- .github/workflows/ollama-template-update.yml | 2 +- CODEOWNERS | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index 53685315e0..d6b4741ed4 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -48,7 +48,7 @@ jobs: run: | set -x - FILE_TO_ADD="packages/ollama-utils/chat-template-automap.ts" + FILE_TO_ADD="packages/ollama-utils/src/chat-template-automap.ts" git status modified_files="$(git status -s)" diff --git a/CODEOWNERS b/CODEOWNERS index 235616b9a5..4d953eeda1 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -23,4 +23,9 @@ /packages/gguf @mishig25 @ngxson @julien-c # Ownership for the space-header Package + /packages/space-header @enzostvs + +# Ownership for the ollama-utils Package + +/packages/ollama-utils @ngxson From ce8483082f8e6f7e73d4831145346c24185a6358 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 15:14:43 +0100 Subject: [PATCH 12/14] final touch --- .github/workflows/ollama-template-update.yml | 4 +- .github/workflows/ollama-utils-publish.yml | 68 ++++++++++++++++++++ 2 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/ollama-utils-publish.yml diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index d6b4741ed4..8b33b4e6f0 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -20,8 +20,8 @@ jobs: id: prepare shell: bash run: | - git config --global user.email "son@huggingface.co" - git config --global user.name "Xuan-Son Nguyen" + git config --global user.name machineuser + git config --global user.email infra+machineuser@huggingface.co git config --global --add safe.directory "$GITHUB_WORKSPACE" npm install -g pnpm CURRENT_DATE=$(date -u +"%Y-%m-%d") diff --git a/.github/workflows/ollama-utils-publish.yml b/.github/workflows/ollama-utils-publish.yml new file mode 100644 index 0000000000..0140e707e4 --- /dev/null +++ b/.github/workflows/ollama-utils-publish.yml @@ -0,0 +1,68 @@ +name: Ollama Utils - Version and Release + +on: + workflow_dispatch: + inputs: + newversion: + type: choice + description: "Semantic Version Bump Type" + default: patch + options: + - patch + - minor + - major + +concurrency: + group: "push-to-main" + +defaults: + run: + working-directory: packages/ollama-utils + +jobs: + version_and_release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + # Needed to push the tag and the commit on the main branch, otherwise we get: + # > Run git push --follow-tags + # remote: error: GH006: Protected branch update failed for refs/heads/main. + # remote: error: Changes must be made through a pull request. Required status check "lint" is expected. + token: ${{ secrets.BOT_ACCESS_TOKEN }} + - run: npm install -g corepack@latest && corepack enable + - uses: actions/setup-node@v3 + with: + node-version: "20" + cache: "pnpm" + cache-dependency-path: | + packages/ollama-utils/pnpm-lock.yaml + # setting a registry enables the NODE_AUTH_TOKEN env variable where we can set an npm token. REQUIRED + registry-url: "https://registry.npmjs.org" + - run: pnpm install + - run: git config --global user.name machineuser + - run: git config --global user.email infra+machineuser@huggingface.co + - run: | + PACKAGE_VERSION=$(node -p "require('./package.json').version") + BUMPED_VERSION=$(node -p "require('semver').inc('$PACKAGE_VERSION', '${{ github.event.inputs.newversion }}')") + # Update package.json with the new version + node -e "const fs = require('fs'); const package = JSON.parse(fs.readFileSync('./package.json')); package.version = '$BUMPED_VERSION'; fs.writeFileSync('./package.json', JSON.stringify(package, null, '\t') + '\n');" + git commit . -m "🔖 @huggingface/ollama-utils $BUMPED_VERSION" + git tag "ollama-utils-v$BUMPED_VERSION" + + - name: "Check Deps are published before publishing this package" + run: pnpm -w check-deps tasks + + - run: pnpm publish --no-git-checks . + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + - run: git pull --rebase && git push --follow-tags + # hack - reuse actions/setup-node@v3 just to set a new registry + - uses: actions/setup-node@v3 + with: + node-version: "20" + registry-url: "https://npm.pkg.github.com" + # Disable for now, until github supports PATs for writing github packages (https://github.com/github/roadmap/issues/558) + # - run: pnpm publish --no-git-checks . + # env: + # NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 66d3ecc2668081a523b4db10a06792c0704b8202 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 15:25:40 +0100 Subject: [PATCH 13/14] only allow running on hf.js repo --- .github/workflows/ollama-template-update.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index 8b33b4e6f0..374f049be0 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -1,9 +1,9 @@ name: Ollama template update on: - push: # for debugging + # push: # for debugging workflow_dispatch: - #schedule: - # - cron: '0 7 * * 1' # every monday at 7am, so I'll review it after having a 🥐 + schedule: + - cron: '0 7 * * 1' # every monday at 7am, so I'll review it after having a 🥐 permissions: pull-requests: write # for creating PR @@ -15,9 +15,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + if: github.repository == 'huggingface/huggingface.js' - name: Prepare id: prepare + if: github.repository == 'huggingface/huggingface.js' shell: bash run: | git config --global user.name machineuser @@ -29,12 +31,14 @@ jobs: echo "CURRENT_DATE=$CURRENT_DATE" >> $GITHUB_OUTPUT - name: Install dependencies + if: github.repository == 'huggingface/huggingface.js' shell: bash run: | cd packages/ollama-utils pnpm install --frozen-lockfile - name: Run update script + if: github.repository == 'huggingface/huggingface.js' shell: bash run: | cd packages/ollama-utils @@ -42,6 +46,7 @@ jobs: - name: Check for changed files id: changes + if: github.repository == 'huggingface/huggingface.js' shell: bash env: CURRENT_DATE: ${{ steps.prepare.outputs.CURRENT_DATE }} @@ -70,7 +75,7 @@ jobs: fi - name: Create PR - if: steps.changes.outputs.HAS_CHANGES == 'true' + if: steps.changes.outputs.HAS_CHANGES == 'true' && github.repository == 'huggingface/huggingface.js' uses: actions/github-script@v6 env: CURRENT_DATE: ${{ steps.prepare.outputs.CURRENT_DATE }} From 36301fdcb077a9a3b6bc79f48d2e14dbd5aacf63 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 16 Feb 2025 15:26:28 +0100 Subject: [PATCH 14/14] change job name --- .github/workflows/ollama-template-update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ollama-template-update.yml b/.github/workflows/ollama-template-update.yml index 374f049be0..f1f463a5c6 100644 --- a/.github/workflows/ollama-template-update.yml +++ b/.github/workflows/ollama-template-update.yml @@ -11,7 +11,7 @@ permissions: contents: write # for git push new branch jobs: - create-pull-request: + update-ollama-templates: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3