Skip to content

Commit 86f3073

Browse files
chore: migrate repo to qualcomm/nexa-sdk and fix CI
- migrate repo URLs and go module path from qcom-ai-hub to qualcomm - point geniex-qairt submodule to qualcomm/geniex-qairt-plugin (nested geniex-proc now resolves to qualcomm over HTTPS) - split PATs: GH_PAT (submodule checkout) vs GHCR_PAT (qcom-ai-hub toolchain images) - map CI runner labels to GitHub-hosted runners; linux arm64 build/test on ubuntu-24.04-arm - disable org/external publish jobs (docker/testpypi/maven-central)
1 parent ec8582c commit 86f3073

73 files changed

Lines changed: 322 additions & 304 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/_build-cli.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ jobs:
3030
matrix:
3131
include:
3232
- platform: windows-arm64
33-
runner: windows-arm64
33+
runner: windows-11-arm
3434
- platform: linux-arm64
35-
runner: linux-arm64
35+
runner: ubuntu-24.04-arm
3636
runs-on: ${{ matrix.runner }}
3737
timeout-minutes: 60
3838

.github/workflows/_build-docker.yml

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ on:
2121
description: "Fully-qualified image reference without tag (release-only)."
2222
required: false
2323
type: string
24-
default: ghcr.io/qcom-ai-hub/geniex-cli
24+
default: ghcr.io/qualcomm/geniex-cli
2525
tag:
2626
description: "Image tag to publish, e.g. v1.2.3 (required when push=true)."
2727
required: false
@@ -117,29 +117,29 @@ jobs:
117117
file "${tarball}"
118118
tar -tf "${tarball}" | head -10
119119
120-
# Enterprise policy blocks GITHUB_TOKEN from creating org packages,
121-
# so login with GH_PAT (user-scoped, SAML-authorized).
122-
- name: Log in to GHCR (crane)
123-
if: inputs.push
124-
shell: bash
125-
env:
126-
GHCR_USER: ${{ github.actor }}
127-
GHCR_TOKEN: ${{ secrets.GH_PAT }}
128-
run: |
129-
set -euo pipefail
130-
echo "${GHCR_TOKEN}" | crane auth login ghcr.io -u "${GHCR_USER}" --password-stdin
131-
132-
- name: Push image to GHCR
133-
if: inputs.push
134-
shell: bash
135-
env:
136-
IMAGE: ${{ inputs.image }}
137-
IMAGE_REF: ${{ env.IMAGE_REF }}
138-
IS_PRERELEASE: ${{ inputs.is_prerelease }}
139-
run: |
140-
set -euo pipefail
141-
crane push bazel-bin/cli/release/linux/geniex-cli-docker.tar "${IMAGE_REF}"
142-
# Prereleases must not clobber the floating :latest tag.
143-
if [[ "${IS_PRERELEASE}" != "true" ]]; then
144-
crane tag "${IMAGE_REF}" latest
145-
fi
120+
# # Enterprise policy blocks GITHUB_TOKEN from creating org packages,
121+
# # so login with GH_PAT (user-scoped, SAML-authorized).
122+
# - name: Log in to GHCR (crane)
123+
# if: inputs.push
124+
# shell: bash
125+
# env:
126+
# GHCR_USER: ${{ github.actor }}
127+
# GHCR_TOKEN: ${{ secrets.GH_PAT }}
128+
# run: |
129+
# set -euo pipefail
130+
# echo "${GHCR_TOKEN}" | crane auth login ghcr.io -u "${GHCR_USER}" --password-stdin
131+
#
132+
# - name: Push image to GHCR
133+
# if: inputs.push
134+
# shell: bash
135+
# env:
136+
# IMAGE: ${{ inputs.image }}
137+
# IMAGE_REF: ${{ env.IMAGE_REF }}
138+
# IS_PRERELEASE: ${{ inputs.is_prerelease }}
139+
# run: |
140+
# set -euo pipefail
141+
# crane push bazel-bin/cli/release/linux/geniex-cli-docker.tar "${IMAGE_REF}"
142+
# # Prereleases must not clobber the floating :latest tag.
143+
# if [[ "${IS_PRERELEASE}" != "true" ]]; then
144+
# crane tag "${IMAGE_REF}" latest
145+
# fi

.github/workflows/_build-sdk.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
matrix:
3636
include:
3737
- platform: windows-arm64
38-
runner: windows-arm64
38+
runner: windows-11-arm
3939
preset: arm64-windows-snapdragon-release
4040
- platform: linux-arm64
4141
runner: ubuntu-latest
@@ -59,6 +59,13 @@ jobs:
5959
git config --global core.fscache true
6060
git config --global core.preloadindex true
6161
62+
# The geniex-qairt-plugin submodule pins a nested submodule (geniex-proc)
63+
# by SSH URL (git@github.com:...). CI authenticates over HTTPS with a PAT,
64+
# so rewrite SSH → HTTPS globally before checkout recurses into it.
65+
- name: Rewrite SSH submodule URLs to HTTPS
66+
shell: bash
67+
run: git config --global url."https://github.com/".insteadOf "git@github.com:"
68+
6269
- name: Checkout source
6370
uses: actions/checkout@v6
6471
with:
@@ -186,16 +193,17 @@ jobs:
186193
Add-Content -Path $env:GITHUB_ENV -Value "HEXAGON_HTP_CERT=$dst"
187194
Write-Host "HEXAGON_HTP_CERT=$dst"
188195
189-
# Derived toolchain images live in a private GHCR package. GH_PAT
190-
# is used because enterprise policy blocks GITHUB_TOKEN from org
191-
# package pulls (same pattern as _build-docker.yml).
196+
# Derived toolchain images live in a private GHCR package under the
197+
# qcom-ai-hub org; GHCR_PAT (qcom account) has pull access there.
198+
# A PAT is required because enterprise policy blocks GITHUB_TOKEN
199+
# from org package pulls (same pattern as _build-docker.yml).
192200
- name: Log in to GHCR
193201
if: matrix.platform == 'linux-arm64' || matrix.platform == 'android-arm64'
194202
uses: docker/login-action@v4
195203
with:
196204
registry: ghcr.io
197-
username: ${{ github.actor }}
198-
password: ${{ secrets.GH_PAT }}
205+
username: hongzhic_QCOM
206+
password: ${{ secrets.GHCR_PAT }}
199207

200208
- name: Build SDK (cross-compile in toolchain container)
201209
if: matrix.platform != 'windows-arm64'

.github/workflows/_build-toolchain-docker.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ name: Build Toolchain Docker
1212
# tag equals the git tag minus the `toolchain-` prefix.
1313
#
1414
# Image names:
15-
# ghcr.io/qcom-ai-hub/geniex-toolchain-linux:<version>
16-
# ghcr.io/qcom-ai-hub/geniex-toolchain-android:<version>
15+
# ghcr.io/qualcomm/geniex-toolchain-linux:<version>
16+
# ghcr.io/qualcomm/geniex-toolchain-android:<version>
1717
#
1818
# We intentionally do NOT publish a :latest tag - _build-sdk.yml pins an
1919
# exact semantic version so upstream changes cannot silently affect SDK
@@ -54,10 +54,10 @@ jobs:
5454
include:
5555
- platform: linux
5656
dockerfile: .github/docker/toolchain-linux.Dockerfile
57-
image: ghcr.io/qcom-ai-hub/geniex-toolchain-linux
57+
image: ghcr.io/qualcomm/geniex-toolchain-linux
5858
- platform: android
5959
dockerfile: .github/docker/toolchain-android.Dockerfile
60-
image: ghcr.io/qcom-ai-hub/geniex-toolchain-android
60+
image: ghcr.io/qualcomm/geniex-toolchain-android
6161

6262
steps:
6363
- name: Checkout source

.github/workflows/_test.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@ jobs:
4545
fail-fast: false
4646
matrix:
4747
platform: ${{ fromJSON(inputs.platforms) }}
48-
runs-on: ${{ matrix.platform }}
48+
# platform is the canonical id (matches sdk-<platform> artifacts and the
49+
# windows-arm64 step conditions below); map it to a real runner label.
50+
# linux tests run the arm64 SDK binary, so they need an arm64 host
51+
# (ubuntu-24.04-arm), not the x86 ubuntu-latest.
52+
runs-on: ${{ matrix.platform == 'windows-arm64' && 'windows-11-arm' || 'ubuntu-24.04-arm' }}
4953
timeout-minutes: 45
5054
env:
5155
# Surface SDK-side trace logs to stderr in every cell so a failed

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
timeout-minutes: 5
5252
environment:
5353
name: github-pages
54-
url: https://qcom-ai-hub.github.io/geniex/
54+
url: https://qualcomm.github.io/nexa-sdk/
5555
steps:
5656
- id: deployment
5757
uses: actions/deploy-pages@v4

0 commit comments

Comments
 (0)