File: release.yml

package info (click to toggle)
python-maxminddb 3.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,600 kB
  • sloc: ansic: 7,565; python: 1,711; perl: 987; makefile: 273; sh: 190
file content (122 lines) | stat: -rw-r--r-- 3,472 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
name: Build and upload to PyPI

on:
  workflow_dispatch:
  pull_request:
  push:
    branches:
      - main
  release:
    types:
      - published

permissions: {}

jobs:
  build_wheels:
    name: Build wheels for ${{ matrix.os }}
    runs-on: ${{ matrix.runs-on }}
    strategy:
      matrix:
        os:
          - android-arm
          - android-intel
          - ios
          - linux-arm
          - linux-intel
          - macos-arm
          - macos-intel
          - windows-arm
          - windows-intel
        include:
          - archs: auto
            platform: auto
          - os: android-intel
            runs-on: ubuntu-latest
            platform: android
          - os: android-arm
            runs-on: macos-latest
            platform: android
          - os: ios
            runs-on: macos-latest
            platform: ios
          - os: linux-arm
            runs-on: ubuntu-24.04-arm
          - os: linux-intel
            runs-on: ubuntu-latest
          - os: macos-intel
            # macos-13 was the last x86_64 runner
            runs-on: macos-13
          - os: macos-arm
            # macos-14+ (including latest) are ARM64 runners
            runs-on: macos-latest
            archs: auto,universal2
          - os: windows-arm
            runs-on: windows-11-arm
          - os: windows-intel
            runs-on: windows-latest

    steps:
      - uses: actions/checkout@v5
        with:
          submodules: true
          persist-credentials: false

      # GitHub Actions can't currently run the Android emulator on macOS.
      - name: Skip Android tests on macOS
        if: matrix.os == 'android-arm'
        run: echo "CIBW_TEST_COMMAND=" >> "$GITHUB_ENV"

      # https://github.blog/changelog/2024-04-02-github-actions-hardware-accelerated-android-virtualization-now-available/
      - name: Enable KVM for Android emulator
        if: matrix.os == 'android-intel'
        run: |
          echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
          sudo udevadm control --reload-rules
          sudo udevadm trigger --name-match=kvm

      - name: Build wheels
        uses: pypa/cibuildwheel@9c00cb4f6b517705a3794b22395aedc36257242c # 3.2.1
        env:
          CIBW_ENABLE: pypy pypy-eol
          CIBW_PLATFORM: ${{ matrix.platform }}
          CIBW_ARCHS: ${{ matrix.archs || 'auto' }}
          MAXMINDDB_REQUIRE_EXTENSION: 1

      - uses: actions/upload-artifact@v4
        with:
          name: maxminddb-whl-${{ matrix.os }}-${{ strategy.job-index }}
          path: ./wheelhouse/*.whl

  build_sdist:
    name: Build source distribution
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
          submodules: true
          persist-credentials: false

      - name: Build sdist
        run: pipx run build --sdist

      - uses: actions/upload-artifact@v4
        with:
          name: maxminddb-sdist
          path: dist/*.tar.gz

  upload_pypi:
    needs: [build_wheels, build_sdist]
    runs-on: ubuntu-latest
    environment: release
    permissions:
      id-token: write
    if: github.event_name == 'release' && github.event.action == 'published'
    steps:
      - uses: actions/download-artifact@v5
        with:
          pattern: maxminddb-*
          path: dist
          merge-multiple: true

      - uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # 1.13.0