Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 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
2 changes: 1 addition & 1 deletion .github/workflows/ci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
- name: Build Deeploy
shell: bash
run: |
pip install . --extra-index-url=https://pypi.ngc.nvidia.com
pip install .
pip install -r requirements-dev.txt
- name: Format Python
shell: bash
Expand Down
35 changes: 32 additions & 3 deletions .github/workflows/docker-build-deeploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,11 @@ jobs:
runs-on: ubuntu-latest
outputs:
docker_tag: ${{ steps.generate_tag.outputs.docker_tag }}
docker_release_tag: ${{ steps.detect_release_tag.outputs.release_tag }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up environment variables
run: |
Expand All @@ -37,6 +40,16 @@ jobs:
echo "docker_tag=${{ env.BRANCH_NAME }}" >> $GITHUB_OUTPUT
fi

- name: Detect release tag on HEAD
id: detect_release_tag
run: |
TAG_ON_HEAD=$(git tag --points-at HEAD | head -n 1 || true)
if [[ -n "$TAG_ON_HEAD" && "$IS_TAG" != "tag" ]]; then
echo "release_tag=$TAG_ON_HEAD" >> $GITHUB_OUTPUT
else
echo "release_tag=" >> $GITHUB_OUTPUT
fi

build-deeploy:
name: Build Deploy Image
needs: [prepare]
Expand Down Expand Up @@ -132,13 +145,29 @@ jobs:
env:
OWNER: "${{ github.repository_owner }}"

- name: Prepare manifest tags
id: manifest_tags
run: |
OWNER_LC_VALUE=${OWNER,,}
{
echo "tags<<'EOF'"
echo "ghcr.io/${OWNER_LC_VALUE}/deeploy:latest,"
echo "ghcr.io/${OWNER_LC_VALUE}/deeploy:${DOCKER_TAG},"
if [[ -n "${RELEASE_TAG}" ]]; then
echo "ghcr.io/${OWNER_LC_VALUE}/deeploy:${RELEASE_TAG},"
fi
echo "EOF"
} >> $GITHUB_OUTPUT
Comment thread
coderabbitai[bot] marked this conversation as resolved.
env:
OWNER: ${{ github.repository_owner }}
DOCKER_TAG: ${{ needs.prepare.outputs.docker_tag }}
RELEASE_TAG: ${{ needs.prepare.outputs.docker_release_tag }}

- name: Merge Deeploy Images
uses: Noelware/docker-manifest-action@v1
with:
inputs: |
ghcr.io/${{ env.OWNER_LC }}/deeploy@${{ needs.build-deeploy.outputs.digest-amd64 }},
ghcr.io/${{ env.OWNER_LC }}/deeploy@${{ needs.build-deeploy.outputs.digest-arm64 }}
tags: |
ghcr.io/${{ env.OWNER_LC }}/deeploy:latest,
ghcr.io/${{ env.OWNER_LC }}/deeploy:${{ needs.prepare.outputs.docker_tag }}
tags: ${{ steps.manifest_tags.outputs.tags }}
push: true
2 changes: 1 addition & 1 deletion .github/workflows/infra-generate-documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- uses: actions/setup-python@v5
- name: Install dependencies
run: |
pip install . --extra-index-url=https://pypi.ngc.nvidia.com
pip install .
pip install -r requirements-dev.txt
- name: Sphinx build
run: |
Expand Down
88 changes: 88 additions & 0 deletions .github/workflows/package-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# SPDX-FileCopyrightText: 2025 ETH Zurich and University of Bologna
#
# SPDX-License-Identifier: Apache-2.0

name: Package • Publish to PyPi

on:
push:
tags:
- "v*"
workflow_dispatch:
inputs:
publish_target:
description: "Select what to do when manually triggering the workflow"
required: false
default: build-only
type: choice
options:
- build-only
- test-pypi

permissions:
contents: read
id-token: write

jobs:
build-package:
name: Build package artifacts
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Build artifacts
run: uv build

- name: Test wheel installation
run: uv run --isolated --no-project --with dist/*.whl python -c "import Deeploy"

- name: Test sdist installation
run: uv run --isolated --no-project --with dist/*.tar.gz python -c "import Deeploy"

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: deeploy-dist
path: dist
if-no-files-found: error

publish-pypi:
name: Publish to PyPI
if: github.event_name == 'push'
needs: build-package
runs-on: ubuntu-latest
steps:
- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: deeploy-dist
path: dist

- name: Publish to PyPI
run: uv publish dist/*

publish-test-pypi:
name: Publish to Test PyPI
if: github.event_name == 'workflow_dispatch' && inputs.publish_target == 'test-pypi'
needs: build-package
runs-on: ubuntu-latest
steps:
- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: deeploy-dist
path: dist

- name: Publish to Test PyPI
run: uv publish dist/* --publish-url https://test.pypi.org/legacy/

65 changes: 0 additions & 65 deletions .github/workflows/publish.yml

This file was deleted.

8 changes: 4 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ This file contains the changelog for the Deeploy project. The changelog is divid


### List of Pull Requests
-
- Update CLI interface Across Project, Fix Tutorial, and Remove Legacy Test [#157](https://github.com/pulp-platform/Deeploy/pull/157)

### Added
-

### Changed
-
- Aligned CLI commands across the project

### Fixed
-
- Fix test paths in Deeploy 101 tutorial

### Removed
-
- `testDMA.py` was an old test; we now have `test_dmas.py` instead.

## Release v0.2.1 (2026-02-05) [#158](https://github.com/pulp-platform/Deeploy/pull/158)

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Additionally, add the title and link to the pull request in the list of pull req
[...]

### Removed
- Remove the link to the precompiled LLVM 12 in the `testRunner` for Snitch and in the CI.
- Remove the link to the precompiled LLVM 12 in the `deeployRunner` for Snitch and in the CI.
[...]
```

Expand Down
3 changes: 0 additions & 3 deletions Container/Dockerfile.deeploy
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,6 @@ WORKDIR /app

COPY pyproject.toml ./

# Add nvidia channel to the pip configuration
RUN mkdir -p /etc && printf "[global]\nextra-index-url = https://pypi.ngc.nvidia.com\n" > /etc/pip.conf

# Install dependencies
RUN apt-get update && \
apt-get install -y git-lfs \
Expand Down
2 changes: 1 addition & 1 deletion Deeploy/Targets/PULPOpen/Templates/GEMMTemplate.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def alignToContext(self, ctxt: NetworkContext,
// LMACAN: In some edge cases sporadic errors happen if this loop is not added.
// We believe this is due to missing bubbles in the pipeline that break operator forwarding.
// Breaking test:
// `python testRunner_tiled_siracusa.py -t=Tests/Models/Transformer --defaultMemLevel=L3 --doublebuffer --l1=30000`
// `python deeployRunner_tiled_siracusa.py -t=Tests/Models/Transformer --defaultMemLevel=L3 --doublebuffer --l1=30000`
#pragma unroll 1
for(int k=0;k<3;k++){
asm volatile("nop" ::);
Expand Down
72 changes: 0 additions & 72 deletions DeeployTest/testDmas.py

This file was deleted.

2 changes: 1 addition & 1 deletion docs/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,5 +76,5 @@ For example, you can run

```
cd DeeployTest
python testRunner_generic.py -t ./Tests/Kernels/Integer/Add/Regular
python deeployRunner_generic.py -t Tests/Models/CNN_Linear1
```
Loading
Loading