Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
3 changes: 3 additions & 0 deletions .github/workflows/on-merge-qvac-lib-infer-llamacpp-embed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ jobs:
with:
tag: ${{ inputs.tag || needs.publish-logic.outputs.gpr_tag }}
publish_target: "gpr"
workdir: "packages/qvac-lib-infer-llamacpp-embed"

publish-feature-gpr:
needs: publish-logic
Expand All @@ -97,6 +98,7 @@ jobs:
with:
tag: ${{ inputs.tag || needs.publish-logic.outputs.gpr_tag }}
publish_target: "gpr"
workdir: "packages/qvac-lib-infer-llamacpp-embed"

publish-tmp-gpr:
needs: publish-logic
Expand All @@ -110,6 +112,7 @@ jobs:
with:
tag: ${{ inputs.tag || needs.publish-logic.outputs.gpr_tag }}
publish_target: "gpr"
workdir: "packages/qvac-lib-infer-llamacpp-embed"

publish-release-npm:
needs: publish-logic
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/on-merge-qvac-lib-infer-llamacpp-llm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ jobs:
with:
tag: ${{ inputs.tag || needs.publish-logic.outputs.gpr_tag }}
publish_target: "gpr"
workdir: "packages/qvac-lib-infer-llamacpp-llm"

publish-feature-gpr:
needs: publish-logic
Expand All @@ -105,6 +106,7 @@ jobs:
with:
tag: ${{ inputs.tag || needs.publish-logic.outputs.gpr_tag }}
publish_target: "gpr"
workdir: "packages/qvac-lib-infer-llamacpp-llm"

publish-tmp-gpr:
needs: publish-logic
Expand All @@ -118,6 +120,7 @@ jobs:
with:
tag: ${{ inputs.tag || needs.publish-logic.outputs.gpr_tag }}
publish_target: "gpr"
workdir: "packages/qvac-lib-infer-llamacpp-llm"

publish-release-npm:
needs: publish-logic
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/on-merge-qvac-lib-infer-whispercpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ jobs:
# workflow_dispatch -> github.event.inputs.tag is set; push -> fallback to computed gpr_tag
tag: ${{ (github.event_name == 'workflow_dispatch' && github.event.inputs.tag) || needs.publish-logic.outputs.gpr_tag }}
publish_target: "gpr"
workdir: "packages/qvac-lib-infer-whispercpp"

publish-feature-gpr:
needs: publish-logic
Expand All @@ -104,6 +105,7 @@ jobs:
with:
tag: ${{ (github.event_name == 'workflow_dispatch' && github.event.inputs.tag) || needs.publish-logic.outputs.gpr_tag }}
publish_target: "gpr"
workdir: "packages/qvac-lib-infer-whispercpp"

publish-tmp-gpr:
needs: publish-logic
Expand All @@ -117,6 +119,7 @@ jobs:
with:
tag: ${{ (github.event_name == 'workflow_dispatch' && github.event.inputs.tag) || needs.publish-logic.outputs.gpr_tag }}
publish_target: "gpr"
workdir: "packages/qvac-lib-infer-whispercpp"

publish-release-npm:
needs: publish-logic
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/prebuilds-qvac-lib-infer-llamacpp-embed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ jobs:
uses: actions/download-artifact@v4
with:
name: prebuilds
path: prebuilds
path: ${{ env.WORKDIR }}/prebuilds

- name: Publish to GitHub Package Registry
id: publish
Expand Down Expand Up @@ -510,11 +510,12 @@ jobs:
uses: actions/download-artifact@v4
with:
name: prebuilds
path: prebuilds
path: ${{ env.WORKDIR }}/prebuilds

- name: Publish to NPM Package Registry
id: publish
uses: tetherto/qvac-devops/.github/actions/publish-library-to-npm@monorepo_update
with:
secret-token: ${{ secrets.NPM_TOKEN }}
tag: "latest"
workdir: ${{ env.WORKDIR }}
8 changes: 5 additions & 3 deletions .github/workflows/prebuilds-qvac-lib-infer-llamacpp-llm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -495,7 +495,7 @@ jobs:
uses: actions/download-artifact@v4
with:
name: prebuilds
path: prebuilds
path: ${{ env.WORKDIR }}/prebuilds

- name: Scope package as @tetherto for GPR
shell: bash
Expand Down Expand Up @@ -549,10 +549,11 @@ jobs:
uses: actions/download-artifact@v4
with:
name: prebuilds
path: prebuilds
path: ${{ env.WORKDIR }}/prebuilds

# Re-assert scope for public npm (fresh checkout)
- name: Scope package as @qvac for npm
working-directory: ${{ env.WORKDIR }}
shell: bash
run: |
set -euo pipefail
Expand All @@ -564,4 +565,5 @@ jobs:
uses: tetherto/qvac-devops/.github/actions/publish-library-to-npm@monorepo_update
with:
secret-token: ${{ secrets.NPM_TOKEN }}
tag: 'latest'
tag: 'latest'
workdir: ${{ env.WORKDIR }}
38 changes: 28 additions & 10 deletions .github/workflows/prebuilds-qvac-lib-infer-nmtcpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -292,23 +292,41 @@ jobs:
sudo apt install -y vulkan-sdk

- if: ${{ matrix.os == 'ubuntu-24.04-arm64-private' }}
name: Cache Vulkan SDK for linux arm64
id: cache-vulkan-arm64
uses: actions/cache@v4
with:
path: ~/vulkan
key: vulkan-sdk-linux-arm64-v1

- if: ${{ matrix.os == 'ubuntu-24.04-arm64-private' && steps.cache-vulkan-arm64.outputs.cache-hit != 'true' }}
name: Build Vulkan SDK for linux arm64
name: Build Vulkan SDK for linux arm64 (with S3 cache)
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: us-east-1
run: |
sudo apt install -y xz-utils
wget -q -O /tmp/vulkansdk.tar.xz https://sdk.lunarg.com/sdk/download/latest/linux/vulkan_sdk.tar.xz
cd ~
mkdir -p vulkan
cd vulkan
tar xf /tmp/vulkansdk.tar.xz --strip-components=1
./vulkansdk --maxjobs

# Extract SDK major.minor version from README.txt (e.g., "1.4" from "1.4.341.0")
SDK_VERSION=$(grep -o 'sdk/[0-9]*\.[0-9]*' README.txt | head -1 | sed 's|sdk/||')
S3_BUCKET="tether-ai-dev"
S3_KEY="vulkan-sdk-cache/linux-arm64-${SDK_VERSION}.tar.gz"

echo "Vulkan SDK version: ${SDK_VERSION}"

# Try to download cached build from S3
if aws s3 cp "s3://${S3_BUCKET}/${S3_KEY}" /tmp/vulkan-arm64-cache.tar.gz 2>/dev/null; then
echo "Found cached Vulkan SDK, extracting..."
tar xzf /tmp/vulkan-arm64-cache.tar.gz -C ~/vulkan
rm /tmp/vulkan-arm64-cache.tar.gz
else
echo "No cache found, building Vulkan SDK for ARM64..."
./vulkansdk --maxjobs

# Upload the compiled SDK to S3 for future runs
echo "Uploading compiled SDK to S3..."
tar czf /tmp/vulkan-arm64-cache.tar.gz aarch64
aws s3 cp /tmp/vulkan-arm64-cache.tar.gz "s3://${S3_BUCKET}/${S3_KEY}"
rm /tmp/vulkan-arm64-cache.tar.gz
fi

- if: ${{ matrix.os == 'ubuntu-24.04-arm64-private' }}
name: Setup Vulkan SDK environment for linux arm64
Expand Down
46 changes: 36 additions & 10 deletions .github/workflows/prebuilds-qvac-lib-infer-whispercpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -323,11 +323,38 @@ jobs:

- if: ${{ matrix.platform == 'linux' && matrix.arch == 'arm64' }}
name: Setup vulkan sdk path in linux arm64
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: us-east-1
run: |
VULKAN_SDK=~/vulkan/aarch64
echo "VULKAN_SDK=$VULKAN_SDK" >> $GITHUB_ENV

cd ~/vulkan
./vulkansdk --maxjobs

# Extract SDK major.minor version from README.txt (e.g., "1.4" from "1.4.341.0")
SDK_VERSION=$(grep -o 'sdk/[0-9]*\.[0-9]*' README.txt | head -1 | sed 's|sdk/||')
S3_BUCKET="tether-ai-dev"
S3_KEY="vulkan-sdk-cache/linux-arm64-${SDK_VERSION}.tar.gz"

echo "Vulkan SDK version: ${SDK_VERSION}"

# Try to download cached build from S3
if aws s3 cp "s3://${S3_BUCKET}/${S3_KEY}" /tmp/vulkan-arm64-cache.tar.gz 2>/dev/null; then
echo "Found cached Vulkan SDK, extracting..."
tar xzf /tmp/vulkan-arm64-cache.tar.gz -C ~/vulkan
rm /tmp/vulkan-arm64-cache.tar.gz
else
echo "No cache found, building Vulkan SDK for ARM64..."
./vulkansdk --maxjobs

# Upload the compiled SDK to S3 for future runs
echo "Uploading compiled SDK to S3..."
tar czf /tmp/vulkan-arm64-cache.tar.gz aarch64
aws s3 cp /tmp/vulkan-arm64-cache.tar.gz "s3://${S3_BUCKET}/${S3_KEY}"
rm /tmp/vulkan-arm64-cache.tar.gz
fi

- if: ${{ matrix.platform == 'linux' }}
name: Export rest of vulkan sdk variables in linux
Expand Down Expand Up @@ -462,15 +489,7 @@ jobs:
uses: actions/download-artifact@v4
with:
name: prebuilds
path: /tmp/prebuilds

- name: Place merged prebuilds into package workdir
shell: bash
run: |
set -euo pipefail
mkdir -p "${WORKDIR}/prebuilds"
rm -rf "${WORKDIR}/prebuilds"/*
cp -R /tmp/prebuilds/* "${WORKDIR}/prebuilds/"
path: ${WORKDIR}/prebuilds

- name: Rename prebuild files from qvac_ to tetherto_ prefix
shell: bash
Expand Down Expand Up @@ -545,12 +564,19 @@ jobs:
token: ${{ secrets.PAT_TOKEN }}
fetch-depth: 0

- name: Download prebuild artifacts
uses: actions/download-artifact@v4
with:
name: prebuilds
path: ${WORKDIR}/prebuilds

- name: Publish to NPM Package Registry
id: publish
uses: tetherto/qvac-devops/.github/actions/publish-library-to-npm@monorepo_update
with:
secret-token: ${{ secrets.NPM_TOKEN }}
tag: "latest"
workdir: $((WORKDIR))

- name: Capture published version
id: capture_version
Expand Down