|
|
@@ -61,7 +61,21 @@ jobs:
|
|
|
timeout-minutes: 5
|
|
|
outputs:
|
|
|
matrix: ${{ steps.plan.outputs.matrix }}
|
|
|
+ version: ${{ steps.version.outputs.version }}
|
|
|
steps:
|
|
|
+ - uses: actions/checkout@v6
|
|
|
+
|
|
|
+ - name: Resolve repository version
|
|
|
+ id: version
|
|
|
+ run: |
|
|
|
+ set -euo pipefail
|
|
|
+ version="$(jq -r '.version // empty' package.json)"
|
|
|
+ [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || {
|
|
|
+ echo "::error::package.json version must be stable X.Y.Z, got '$version'"
|
|
|
+ exit 1
|
|
|
+ }
|
|
|
+ echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
|
+
|
|
|
- name: Compute matrix from targets input
|
|
|
id: plan
|
|
|
env:
|
|
|
@@ -99,7 +113,7 @@ jobs:
|
|
|
|
|
|
sdk-wheel:
|
|
|
needs: plan
|
|
|
- name: deepseek_harness-0.0.0-py3-none-any.whl
|
|
|
+ name: deepseek_harness-${{ needs.plan.outputs.version }}-py3-none-any.whl
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 5
|
|
|
steps:
|
|
|
@@ -116,13 +130,12 @@ jobs:
|
|
|
run: >-
|
|
|
python scripts/build-python-release.py
|
|
|
--package sdk
|
|
|
- --tag python-v0.0.0
|
|
|
--output-dir dist-python
|
|
|
|
|
|
- uses: actions/upload-artifact@v6
|
|
|
with:
|
|
|
- name: deepseek_harness-0.0.0-py3-none-any.whl
|
|
|
- path: dist-python/deepseek_harness-0.0.0-py3-none-any.whl
|
|
|
+ name: deepseek_harness-${{ needs.plan.outputs.version }}-py3-none-any.whl
|
|
|
+ path: dist-python/deepseek_harness-${{ needs.plan.outputs.version }}-py3-none-any.whl
|
|
|
if-no-files-found: error
|
|
|
|
|
|
build:
|
|
|
@@ -189,15 +202,16 @@ jobs:
|
|
|
id: runtime
|
|
|
env:
|
|
|
TARGET: ${{ matrix.target }}
|
|
|
+ VERSION: ${{ needs.plan.outputs.version }}
|
|
|
run: |
|
|
|
set -euo pipefail
|
|
|
platform="${TARGET#node24-}"
|
|
|
exe="$PWD/dist-exe/dsh-jsonrpc-agent-pkg-$platform"
|
|
|
[ -x "$exe" ] || { echo "::error::$exe missing or not executable"; exit 1; }
|
|
|
case "$platform" in
|
|
|
- linux-x64) wheel=deepseek_harness_runtime_bin-0.0.0-py3-none-manylinux_2_28_x86_64.whl ;;
|
|
|
- linux-arm64) wheel=deepseek_harness_runtime_bin-0.0.0-py3-none-manylinux_2_28_aarch64.whl ;;
|
|
|
- macos-arm64) wheel=deepseek_harness_runtime_bin-0.0.0-py3-none-macosx_11_0_arm64.whl ;;
|
|
|
+ linux-x64) wheel=deepseek_harness_runtime_bin-$VERSION-py3-none-manylinux_2_28_x86_64.whl ;;
|
|
|
+ linux-arm64) wheel=deepseek_harness_runtime_bin-$VERSION-py3-none-manylinux_2_28_aarch64.whl ;;
|
|
|
+ macos-arm64) wheel=deepseek_harness_runtime_bin-$VERSION-py3-none-macosx_11_0_arm64.whl ;;
|
|
|
*) echo "::error::Unsupported runtime platform $platform"; exit 1 ;;
|
|
|
esac
|
|
|
echo "platform=$platform" >> "$GITHUB_OUTPUT"
|
|
|
@@ -215,23 +229,24 @@ jobs:
|
|
|
run: >-
|
|
|
python scripts/build-python-release.py
|
|
|
--package runtime
|
|
|
- --tag python-v0.0.0
|
|
|
--platform "${{ steps.runtime.outputs.platform }}"
|
|
|
--runtime-exe "${{ steps.runtime.outputs.exe }}"
|
|
|
--output-dir dist-python
|
|
|
|
|
|
- uses: actions/download-artifact@v8
|
|
|
with:
|
|
|
- name: deepseek_harness-0.0.0-py3-none-any.whl
|
|
|
+ name: deepseek_harness-${{ needs.plan.outputs.version }}-py3-none-any.whl
|
|
|
path: dist-python
|
|
|
|
|
|
- name: Install only the SDK into a clean venv and run zero-config
|
|
|
+ env:
|
|
|
+ VERSION: ${{ needs.plan.outputs.version }}
|
|
|
run: |
|
|
|
set -euo pipefail
|
|
|
python -m venv "$RUNNER_TEMP/dsh-sdk-smoke"
|
|
|
"$RUNNER_TEMP/dsh-sdk-smoke/bin/python" -m pip install \
|
|
|
--find-links dist-python \
|
|
|
- deepseek-harness==0.0.0
|
|
|
+ deepseek-harness=="$VERSION"
|
|
|
"$RUNNER_TEMP/dsh-sdk-smoke/bin/python" scripts/smoke-python-runtime.py \
|
|
|
--scenario sdk-default
|
|
|
|
|
|
@@ -251,6 +266,7 @@ jobs:
|
|
|
if: runner.os == 'Linux'
|
|
|
env:
|
|
|
RUNNER_ARCH: ${{ runner.arch }}
|
|
|
+ VERSION: ${{ needs.plan.outputs.version }}
|
|
|
run: |
|
|
|
set -euo pipefail
|
|
|
case "$RUNNER_ARCH" in
|
|
|
@@ -258,9 +274,9 @@ jobs:
|
|
|
ARM64) image=quay.io/pypa/manylinux_2_28_aarch64 ;;
|
|
|
*) echo "::error::Unsupported Linux runner architecture $RUNNER_ARCH"; exit 1 ;;
|
|
|
esac
|
|
|
- docker run --rm -v "$PWD:/work" -w /work "$image" bash -euxo pipefail -c '
|
|
|
+ docker run --rm -e VERSION -v "$PWD:/work" -w /work "$image" bash -euxo pipefail -c '
|
|
|
/opt/python/cp310-cp310/bin/python -m venv /tmp/dsh-sdk
|
|
|
- /tmp/dsh-sdk/bin/python -m pip install --find-links /work/dist-python deepseek-harness==0.0.0
|
|
|
+ /tmp/dsh-sdk/bin/python -m pip install --find-links /work/dist-python deepseek-harness=="$VERSION"
|
|
|
/tmp/dsh-sdk/bin/python /work/scripts/smoke-python-runtime.py --scenario sdk-default
|
|
|
'
|
|
|
|