bugfix/SW-4957 codex fails due to pkg resources dependency of markdown in octo print #72
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
| name: Build | |
| on: | |
| push: | |
| pull_request: | |
| release: | |
| types: [published] | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| name: 🔨 Build distribution | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: 🏗 Set up Python "3.10" | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.10" | |
| - name: 🏗 Install build dependencies | |
| run: | | |
| python -m pip install wheel --user | |
| - name: 🔨 Build a binary wheel and a source tarball | |
| run: | | |
| python setup.py sdist bdist_wheel | |
| - name: ⬆ Upload build result | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist | |
| pre-commit: | |
| name: 🧹 Pre-commit | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: 🏗 Set up Python "3.10" | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.10" | |
| - name: 🏗 Set up dev dependencies | |
| run: | | |
| pip install -e .[develop] | |
| - name: 🚀 Run pre-commit | |
| run: | | |
| pre-commit run --all-files --show-diff-on-failure | |
| test-unit: | |
| name: 🧪 Unit tests | |
| strategy: | |
| matrix: | |
| python: ["3.10", "3.13"] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: 🏗 Set up Python ${{ matrix.python }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: Fix Versioneer Compatibility | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install "setuptools<71.0.0" "packaging<22.0" | |
| - name: 🏗 Set up test dependencies | |
| run: | | |
| pip install -e .[develop] | |
| - name: 🚀 Run test suite | |
| env: | |
| PYTEST_DISABLE_PLUGIN_AUTOLOAD: "1" | |
| PYTHONWARNINGS: default | |
| run: | | |
| pytest -p pytest_doctest_custom | |
| test-install: | |
| name: 🧪 Installation tests | |
| needs: build | |
| strategy: | |
| matrix: | |
| python: ["3.10", "3.13"] | |
| installable: ["wheel", "sdist"] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: ⬇ Download build result | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist | |
| - name: 🏗 Set up Python ${{ matrix.python }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: 🚀 Install wheel | |
| if: matrix.installable == 'wheel' | |
| run: | | |
| # Verify the file exists before attempting install | |
| ls -R dist/ | |
| pip install dist/octoprint-*.whl | |
| - name: 🚀 Install source tarball | |
| if: matrix.installable == 'sdist' | |
| run: | | |
| # Verify the file exists before attempting install | |
| ls -R dist/ | |
| pip install dist/octoprint-*.tar.gz | |
| test-e2e: | |
| name: 🧪 E2E tests | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: ⬇ Checkout code | |
| uses: actions/checkout@v4 | |
| - name: ⬇ Download build result | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist | |
| - name: 🏗 Set up Python "3.10" | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.10" | |
| - name: 🚀 Install wheel | |
| run: | | |
| ls -R dist/ | |
| pip install --upgrade pip setuptools | |
| # Force reinstall to ensure your NEW pins in setup.py are actually applied | |
| pip install --force-reinstall dist/octoprint-*.whl | |
| - name: 🏗 Create base config for test server | |
| run: | | |
| mkdir e2econfig | |
| cp -r .github/fixtures/with_acl/* e2econfig | |
| - name: 🚀 Run Cypress | |
| uses: cypress-io/github-action@v6 | |
| with: | |
| working-directory: tests/cypress | |
| browser: chrome | |
| start: "octoprint -b ${{ github.workspace }}/e2econfig serve --host 127.0.0.1 --port 5000" | |
| wait-on: "http://127.0.0.1:5000/online.txt" | |
| - name: ⬆ Upload screenshots | |
| uses: actions/upload-artifact@v4 | |
| if: failure() | |
| with: | |
| name: cypress-screenshots | |
| path: tests/cypress/screenshots | |
| - name: ⬆ Upload videos | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: cypress-videos | |
| path: tests/cypress/videos | |
| publish-on-testpypi: | |
| name: 📦 Publish on TestPyPI | |
| if: github.event_name == 'release' | |
| needs: | |
| - pre-commit | |
| - test-unit | |
| - test-install | |
| - test-e2e | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: ⬇ Download build result | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist | |
| - name: 📦 Publish to index | |
| uses: pypa/gh-action-pypi-publish@master | |
| continue-on-error: true | |
| with: | |
| password: ${{ secrets.testpypi_password }} | |
| repository_url: https://test.pypi.org/legacy/ | |
| publish-on-pypi: | |
| name: 📦 Publish tagged releases to PyPI | |
| if: github.event_name == 'release' | |
| needs: publish-on-testpypi | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: ⬇ Download build result | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist | |
| - name: 📦 Publish to index | |
| uses: pypa/gh-action-pypi-publish@master | |
| with: | |
| password: ${{ secrets.pypi_password }} | |
| notify-custopizer-build: | |
| name: 📧 Notify OctoPi-UpToDate | |
| if: github.event_name == 'release' | |
| needs: publish-on-pypi | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 👀 Determine version | |
| run: | | |
| OCTOPRINT_VERSION=$(echo $GITHUB_REF | cut -d/ -f3) | |
| echo "OCTOPRINT_VERSION=$OCTOPRINT_VERSION" >> $GITHUB_ENV | |
| - name: 🚀 Repository Dispatch | |
| uses: peter-evans/repository-dispatch@v1 | |
| with: | |
| token: ${{ secrets.REPODISPATCH_TOKEN }} | |
| repository: OctoPrint/OctoPi-UpToDate | |
| event-type: octoprint_release | |
| client-payload: '{"version": "${{ env.OCTOPRINT_VERSION }}"}' |