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
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
37 changes: 34 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,31 @@ 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,"
if [[ -n "${RELEASE_TAG}" ]]; then
echo "ghcr.io/${OWNER_LC_VALUE}/deeploy:${DOCKER_TAG},"
echo "ghcr.io/${OWNER_LC_VALUE}/deeploy:${RELEASE_TAG}"
else
echo "ghcr.io/${OWNER_LC_VALUE}/deeploy:${DOCKER_TAG}"
fi
echo "EOF"
} >> $GITHUB_OUTPUT
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
87 changes: 87 additions & 0 deletions .github/workflows/package-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# 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