SW-2430 OctoPrint Favicon is Shown in the Login Screen (#130) #35
This file contains 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@v2 | |
with: | |
fetch-depth: 0 | |
- name: 🏗 Set up Python 3.7 | |
uses: actions/setup-python@v1 | |
with: | |
python-version: 3.7 | |
- 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@v1 | |
with: | |
name: dist | |
path: dist | |
pre-commit: | |
name: 🧹 Pre-commit | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: 🏗 Set up Python 3.7 | |
uses: actions/setup-python@v1 | |
with: | |
python-version: 3.7 | |
- 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: ["2.7", "3.7", "3.8", "3.9"] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: 🏗 Set up Python ${{ matrix.python }} | |
uses: actions/setup-python@v1 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: 🏗 Set up test dependencies | |
run: | | |
pip install -e .[develop] | |
- name: 🚀 Run test suite | |
run: | | |
pytest | |
test-install: | |
name: 🧪 Installation tests | |
needs: build | |
strategy: | |
matrix: | |
python: ["2.7", "3.7", "3.8", "3.9"] | |
installable: ["wheel", "sdist"] | |
runs-on: ubuntu-latest | |
steps: | |
- name: ⬇ Download build result | |
uses: actions/download-artifact@v1 | |
with: | |
name: dist | |
path: dist | |
- name: 🏗 Set up Python ${{ matrix.python }} | |
uses: actions/setup-python@v1 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: 🚀 Install wheel | |
if: matrix.installable == 'wheel' | |
run: | | |
pip install dist/OctoPrint-*-py2.py3-none-any.whl | |
- name: 🚀 Install source tarball | |
if: matrix.installable == 'sdist' | |
run: | | |
pip install dist/OctoPrint-*.tar.gz | |
test-e2e: | |
name: 🧪 E2E tests | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: ⬇ Checkout code | |
uses: actions/checkout@v2 | |
- name: ⬇ Download build result | |
uses: actions/download-artifact@v1 | |
with: | |
name: dist | |
path: dist | |
- name: 🏗 Set up Python 3.7 | |
uses: actions/setup-python@v1 | |
with: | |
python-version: 3.7 | |
- name: 🚀 Install wheel | |
run: | | |
pip install dist/OctoPrint-*-py2.py3-none-any.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@v2 | |
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@v1 | |
if: failure() | |
with: | |
name: cypress-screenshots | |
path: tests/cypress/screenshots | |
- name: ⬆ Upload videos | |
uses: actions/upload-artifact@v1 | |
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@v1 | |
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@v1 | |
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 }}"}' |