Skip to content

ci: enable basic e2e smoke testing #20

ci: enable basic e2e smoke testing

ci: enable basic e2e smoke testing #20

Workflow file for this run

name: Build pipeline
on:
push:
branches:
- main
- devel
release:
types: [released]
jobs:
build:
name: 🔨 Build distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: 🏗 Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: 🔨 Build a binary wheel and a source tarball
run: |
pip install --user --upgrade build
python -m build
- 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.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: 🏗 Set up pre-commit
run: |
pip install pre-commit
- name: 🚀 Run pre-commit
run: |
pre-commit run --all-files --show-diff-on-failure
e2e:
name: 🧪 E2E tests
needs: build
runs-on: ubuntu-22.04 # change back to ubuntu-latest once we drop Python 3.7 & upgrade playwright
strategy:
matrix:
octoprint: ["maintenance"] # add master once 1.11.0 has been released
steps:
- name: ⬇ Download build result
uses: actions/download-artifact@v4
with:
name: dist
path: dist
- name: 🎭 Run OctoPrint's E2E Tests
uses: OctoPrint/actions/e2e@main
with:
ref: ${{ matrix.octoprint }}
deps: ${{ github.workspace }}/dist/*.whl
suffix: "-${{ matrix.octoprint }}"
publish-on-testpypi:
name: 📦 Publish on TestPyPI
if: github.event_name == 'release'
needs:
- build
- pre-commit
runs-on: ubuntu-latest
environment:
name: testpypi
url: https://test.pypi.org/p/OctoPrint-MfaTotp
permissions:
id-token: write
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@release/v1
with:
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
environment:
name: pypi
url: https://test.pypi.org/p/OctoPrint-MfaTotp
permissions:
id-token: write
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@release/v1