name: CI on: push: paths-ignore: - 'docs/**' - '*.md' schedule: # Weekly, at 01:30 AM on Friday (somewhat randomly chosen). - cron: '30 01 * * 5' workflow_dispatch: permissions: {} jobs: lint: name: Linting uses: $/.github/workflows/lint.yml basic: name: Basic usage uses: $/.github/workflows/basic.yml boost_download: name: Boost (download) uses: $/.github/workflows/boost_download.yml boost_toolsets: name: Boost (toolsets) uses: $/.github/workflows/boost_toolsets.yml example_toolsets: name: Examples (toolsets) uses: $/.github/workflows/example_toolsets.yml msvc_versions: name: Visual Studio versions uses: $/.github/workflows/msvc_versions.yml # Build a Python package and upload to PyPI. publish: # This workflow cannot be reusable for some reason: # https://github.com/pypa/gh-action-pypi-publish/issues/166 needs: - lint - basic - boost_toolsets - example_toolsets runs-on: ubuntu-latest name: Publish to PyPI steps: - name: Checkout uses: actions/checkout@v7 with: fetch-depth: 0 persist-credentials: false - name: Set up Python uses: actions/setup-python@v7 with: python-version: '3.x' - name: Verify package can be installed run: pip install -q . - name: Install package builder run: pip install -q --upgrade build - name: Build package run: python -m build - name: Publish as artifact uses: actions/upload-artifact@v7 with: name: dist path: dist if-no-files-found: error - name: Publish to PyPI if: startsWith(github.ref, 'refs/tags/') uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.PYPI_API_TOKEN }} aur: name: Publish to AUR needs: - publish if: startsWith(github.ref, 'refs/tags/') uses: $/.github/workflows/aur.yml secrets: inherit