add temp trigger #2
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This workflow will install Python dependencies, run tests and lint with a single version of Python | |
| # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python | |
| name: MLDebugger Release | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| branches: | |
| - main # temp | |
| permissions: | |
| contents: write | |
| # Differentiate manual testing from automated testing | |
| env: | |
| GIT_MODE: 1 | |
| jobs: | |
| build: | |
| runs-on: [ build ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| clean: true | |
| - name: Install uv | |
| run: | | |
| pip install uv | |
| echo "Checking pip show:" | |
| pip show uv | |
| echo "Checking user base:" | |
| python -m site --user-base | |
| echo "Checking user bin directory:" | |
| ls -la $(python -m site --user-base)/bin/ 2>/dev/null || echo "No user bin directory" | |
| echo "Current PATH:" | |
| echo $PATH | |
| echo "Looking for uv executable:" | |
| find /scratch -name "uv" 2>/dev/null || echo "uv not found in /scratch" | |
| find $HOME -name "uv" 2>/dev/null || echo "uv not found in HOME" | |
| - name: Add uv to PATH | |
| run: echo "$(python -m site --user-base)/bin" >> $GITHUB_PATH | |
| - name: "Set up Python" | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version-file: "pyproject.toml" | |
| - name: Create and activate virtual environment | |
| run: | | |
| uv venv | |
| source .venv/bin/activate | |
| - name: Install dependencies | |
| run: | | |
| uv pip install flake8 pytest pylint | |
| if [ -f requirements.txt ]; then uv pip install -r requirements.txt; fi | |
| - name: Lint with flake8, pylint | |
| run: | | |
| # stop the build if there are Python syntax errors or undefined names | |
| flake8 . --exclude=.venv --count --select=E9,F63,F7,F82 --show-source --statistics --indent-size 2 | |
| # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide | |
| # flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --indent-size 2 | |
| find src/ -type f -name "*.py" | xargs pylint --ignore=.venv --indent-string=' ' --exit-zero --max-line-length=120 | |
| - name: Update submodules | |
| run: | | |
| git submodule update --init --recursive | |
| - name: Build wheel with UV | |
| run: | | |
| uv build --wheel . | |
| - name: Store wheel path | |
| id: wheel-path | |
| run: | | |
| WHEEL_PATH=$(find dist -name "*.whl" | head -1) | |
| echo "wheel_path=$WHEEL_PATH" >> $GITHUB_OUTPUT | |
| echo "wheel_name=$(basename $WHEEL_PATH)" >> $GITHUB_OUTPUT | |
| - name: Install built wheel | |
| run: | | |
| # Find the wheel file and install it | |
| WHEEL_PATH=$(find dist -name "*.whl" | head -1) | |
| uv pip install --system "$WHEEL_PATH" | |
| - name: Create Release | |
| id: create_release | |
| uses: actions/create-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: v${{ github.run_number }} | |
| release_name: Release v${{ github.run_number }} | |
| draft: false | |
| prerelease: false | |
| - name: Upload Assets to Release | |
| run: | | |
| # Upload only the Wheel (DLL is already inside it) | |
| gh release upload v${{ github.run_number }} \ | |
| "${{ steps.wheel-path.outputs.wheel_path }}" \ | |
| --clobber | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Delete old releases | |
| shell: bash | |
| run: | | |
| # Get all releases, skip the first 10 (keep_latest), delete the rest | |
| gh release list --limit 100 --json tagName --jq '.[10:][].tagName' | \ | |
| xargs -I {} gh release delete {} --yes | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |