Mentions légales du service

Skip to content
Snippets Groups Projects
wheels.yml 1.59 KiB
Newer Older
name: Wheels

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

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build_sdist:
    name: Build SDist
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
      with:
        submodules: true

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

    - name: Check metadata
      run: pipx run twine check dist/*

    - uses: actions/upload-artifact@v3
      with:
        path: dist/*.tar.gz


  build_wheels:
    name: Wheels on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    - uses: actions/checkout@v3
      with:
        submodules: true
    - uses: pypa/cibuildwheel@v2.12.1
        CIBW_ARCHS_MACOS: universal2
        CIBW_ARCHS_WINDOWS: auto ARM64

    - name: Verify clean directory
      run: git diff --exit-code
      shell: bash

    - uses: actions/upload-artifact@v3
      with:
        path: wheelhouse/*.whl


  upload_all:
    name: Upload if release
    needs: [build_wheels, build_sdist]
    runs-on: ubuntu-latest
    if: github.event_name == 'release' && github.event.action == 'published'

    steps:
    - uses: actions/setup-python@v4
      with:
        python-version: "3.x"
    - uses: actions/download-artifact@v3
      with:
        name: artifact
        path: dist

    - uses: pypa/gh-action-pypi-publish@v1.8.4
      with:
        password: ${{ secrets.pypi_password }}