# 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@v6 with: python-version: '3.9' - name: Set up QEMU uses: docker/setup-qemu-action@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 - uses: actions/checkout@v7 - name: Run ci_tests run: ./ci_tests - name: Install dependencies run: | python3 -m pip install --upgrade pip pip install setuptools wheel pip install --group dev - name: Bump version run: | git config --local user.email "hello@qmk.fm" git config --local user.name "QMK Bot" bumpversion --dry-run --list ${{ github.event.inputs.version_part }} | grep new_version= | sed "s/new_version/NEW_CLI_VERSION/" >> "$GITHUB_ENV" 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@v4 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Log in to Docker Hub uses: docker/login-action@v4 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Build and Push slim to Docker Hub uses: docker/build-push-action@v7 with: context: . push: true target: slim platforms: linux/amd64,linux/arm64 tags: | ghcr.io/qmk/qmk_cli:slim qmkfm/qmk_cli:slim ghcr.io/qmk/qmk_cli:${{ env.NEW_CLI_VERSION }}-slim qmkfm/qmk_cli:${{ env.NEW_CLI_VERSION }}-slim - name: Build and Push full to Docker Hub uses: docker/build-push-action@v7 with: context: . push: true target: full platforms: linux/amd64,linux/arm64 tags: | ghcr.io/qmk/qmk_cli:latest qmkfm/qmk_cli:latest ghcr.io/qmk/qmk_cli:${{ github.sha }} qmkfm/qmk_cli:${{ github.sha }} ghcr.io/qmk/qmk_cli:${{ env.NEW_CLI_VERSION }} qmkfm/qmk_cli:${{ env.NEW_CLI_VERSION }}