Feat: Support Vuetify V4 #121
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: Test and Release | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: | |
| branches: [master] | |
| jobs: | |
| pre-commit: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-python@v7 | |
| with: | |
| python-version: "3.10" | |
| # Install and run pre-commit | |
| - run: | | |
| pip install pre-commit | |
| pre-commit install | |
| pre-commit run --all-files | |
| pytest: | |
| name: Pytest ${{ matrix.config.name }} | |
| runs-on: ${{ matrix.config.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10"] | |
| config: | |
| - { name: "Linux", os: ubuntu-latest } | |
| - { name: "MacOSX", os: macos-latest } | |
| - { name: "Windows", os: windows-latest } | |
| defaults: | |
| run: | |
| shell: bash | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install and Run Tests | |
| run: | | |
| pip install . | |
| pip install -r tests/requirements.txt | |
| # Run the tests with coverage so we get a coverage report too | |
| pip install coverage | |
| coverage run --source . -m pytest . | |
| # Print the coverage report | |
| coverage report -m | |
| - name: Upload Coverage to Codecov | |
| uses: codecov/codecov-action@v7 | |
| test-npm-build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set Up Node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 24 | |
| - name: Build Vuetify 2 Components | |
| run: | | |
| cd js-libs/v2 | |
| npm ci | |
| npm run build | |
| - name: Build Vuetify 3 Components | |
| run: | | |
| mkdir -p trame_vuetify/module/v3-serve/{fonts,css} | |
| cd trame_vuetify/module/v3-serve | |
| curl https://cdn.jsdelivr.net/npm/vuetify@3.12.10/dist/vuetify.min.css -Lo vuetify3.css | |
| curl https://cdn.jsdelivr.net/npm/vuetify@3.12.10/dist/vuetify.min.js -Lo vuetify3.js | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/css/materialdesignicons.min.css -Lo css/mdi.css | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/fonts/materialdesignicons-webfont.woff2 -Lo fonts/materialdesignicons-webfont.woff2 | |
| - name: Build Vuetify 3 Lab Components | |
| run: | | |
| cd js-libs/v3-lab | |
| npm ci | |
| npm run build | |
| cd ../../trame_vuetify/module | |
| mkdir -p v3-lab-serve/{fonts,css} | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/css/materialdesignicons.min.css -Lo v3-lab-serve/css/mdi.css | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/fonts/materialdesignicons-webfont.woff2 -Lo v3-lab-serve/fonts/materialdesignicons-webfont.woff2 | |
| - name: Build Vuetify 4 Components | |
| run: | | |
| mkdir -p trame_vuetify/module/v4-serve/{fonts,css} | |
| cd trame_vuetify/module/v4-serve | |
| curl https://cdn.jsdelivr.net/npm/vuetify@4.2.1/dist/vuetify.min.css -Lo vuetify4.css | |
| curl https://cdn.jsdelivr.net/npm/vuetify@4.2.1/dist/vuetify.min.js -Lo vuetify4.js | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/css/materialdesignicons.min.css -Lo css/mdi.css | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/fonts/materialdesignicons-webfont.woff2 -Lo fonts/materialdesignicons-webfont.woff2 | |
| - name: Build Vuetify 4 Lab Components | |
| run: | | |
| cd js-libs/v4-lab | |
| npm ci | |
| npm run build | |
| cd ../../trame_vuetify/module | |
| mkdir -p v4-lab-serve/{fonts,css} | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/css/materialdesignicons.min.css -Lo v4-lab-serve/css/mdi.css | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/fonts/materialdesignicons-webfont.woff2 -Lo v4-lab-serve/fonts/materialdesignicons-webfont.woff2 | |
| release: | |
| needs: [pre-commit, pytest, test-npm-build] | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/p/trame-vuetify | |
| permissions: | |
| id-token: write # IMPORTANT: mandatory for trusted publishing | |
| contents: write # IMPORTANT: mandatory for making GitHub Releases | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set Up Node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 24 | |
| - name: Build Vuetify 2 Components | |
| run: | | |
| cd js-libs/v2 | |
| npm ci | |
| npm run build | |
| - name: Build Vuetify 3 Components | |
| run: | | |
| mkdir -p trame_vuetify/module/v3-serve/{fonts,css} | |
| cd trame_vuetify/module/v3-serve | |
| curl https://cdn.jsdelivr.net/npm/vuetify@3.12.10/dist/vuetify.min.css -Lo vuetify3.css | |
| curl https://cdn.jsdelivr.net/npm/vuetify@3.12.10/dist/vuetify.min.js -Lo vuetify3.js | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/css/materialdesignicons.min.css -Lo css/mdi.css | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/fonts/materialdesignicons-webfont.woff2 -Lo fonts/materialdesignicons-webfont.woff2 | |
| - name: Build Vuetify3-lab Components | |
| run: | | |
| cd js-libs/v3-lab | |
| npm ci | |
| npm run build | |
| cd ../../trame_vuetify/module | |
| mkdir -p v3-lab-serve/{fonts,css} | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/css/materialdesignicons.min.css -Lo v3-lab-serve/css/mdi.css | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/fonts/materialdesignicons-webfont.woff2 -Lo v3-lab-serve/fonts/materialdesignicons-webfont.woff2 | |
| - name: Build Vuetify 4 Components | |
| run: | | |
| mkdir -p trame_vuetify/module/v4-serve/{fonts,css} | |
| cd trame_vuetify/module/v4-serve | |
| curl https://cdn.jsdelivr.net/npm/vuetify@4.2.1/dist/vuetify.min.css -Lo vuetify4.css | |
| curl https://cdn.jsdelivr.net/npm/vuetify@4.2.1/dist/vuetify.min.js -Lo vuetify4.js | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/css/materialdesignicons.min.css -Lo css/mdi.css | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/fonts/materialdesignicons-webfont.woff2 -Lo fonts/materialdesignicons-webfont.woff2 | |
| - name: Build Vuetify4-lab Components | |
| run: | | |
| cd js-libs/v4-lab | |
| npm ci | |
| npm run build | |
| cd ../../trame_vuetify/module | |
| mkdir -p v4-lab-serve/{fonts,css} | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/css/materialdesignicons.min.css -Lo v4-lab-serve/css/mdi.css | |
| curl https://cdn.jsdelivr.net/npm/@mdi/font@7.x/fonts/materialdesignicons-webfont.woff2 -Lo v4-lab-serve/fonts/materialdesignicons-webfont.woff2 | |
| - name: Python Semantic Release | |
| id: release | |
| uses: python-semantic-release/python-semantic-release@v10.6.2 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Publish package distributions to PyPI | |
| if: steps.release.outputs.released == 'true' | |
| uses: pypa/gh-action-pypi-publish@release/v1 |