# This workflow will upload a Python Package using Twine when a release is created # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries name: Upload Python Package on: workflow_dispatch: inputs: version_part: description: 'Which part of the version to increment (patch, minor, major)' required: true default: 'patch' jobs: deploy: runs-on: ubuntu-latest steps: - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.9' - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - uses: actions/checkout@v4 - name: Run ci_tests run: ./ci_tests - name: Install dependencies run: | python3 -m pip install --upgrade pip pip install setuptools wheel pip install -r requirements-dev.txt - name: Bump version run: | git config --local user.email "hello@qmk.fm" git config --local user.name "QMK Bot" bumpversion ${{ github.event.inputs.version_part }} - name: Push changes uses: ad-m/github-push-action@master with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: master tags: true - name: Build and publish env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_APITOKEN }} run: | python3 -m build twine upload dist/* - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Log in to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Build and Push to Docker Hub uses: docker/build-push-action@v6.9.0 with: context: . push: true platforms: linux/amd64,linux/arm64 tags: | ghcr.io/qmk/qmk_cli:latest qmkfm/qmk_cli:latest - name: Trigger OS package builds run: ./trigger_packages env: QMK_BOT_TOKEN: ${{ secrets.QMK_BOT_TOKEN }}