* updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates; Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
		
			
				
	
	
		
			183 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			183 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# This file is autogenerated by maturin v1.6.0 and then modified
 | 
						|
# To update, run
 | 
						|
#
 | 
						|
#    maturin generate-ci github
 | 
						|
#
 | 
						|
name: kcl-python-bindings
 | 
						|
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    branches:
 | 
						|
      - main
 | 
						|
    paths:
 | 
						|
      - '**/Cargo.toml'
 | 
						|
      - '**/Cargo.lock'
 | 
						|
      - '**/rust-toolchain.toml'
 | 
						|
      - 'rust/kcl-python-bindings/**'
 | 
						|
      - '**.rs'
 | 
						|
      - .github/workflows/kcl-python-bindings.yml
 | 
						|
    tags:
 | 
						|
      - 'kcl-*'
 | 
						|
  pull_request:
 | 
						|
    paths:
 | 
						|
      - '**/Cargo.toml'
 | 
						|
      - '**/Cargo.lock'
 | 
						|
      - '**/rust-toolchain.toml'
 | 
						|
      - 'rust/kcl-python-bindings/**'
 | 
						|
      - '**.rs'
 | 
						|
      - .github/workflows/kcl-python-bindings.yml
 | 
						|
  workflow_dispatch:
 | 
						|
 | 
						|
permissions:
 | 
						|
  contents: read
 | 
						|
 | 
						|
concurrency:
 | 
						|
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
 | 
						|
  cancel-in-progress: true
 | 
						|
 | 
						|
jobs:
 | 
						|
  linux-x86_64:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - uses: actions/setup-python@v5
 | 
						|
        with:
 | 
						|
          python-version: 3.x
 | 
						|
      - name: Build wheels
 | 
						|
        uses: PyO3/maturin-action@v1
 | 
						|
        with:
 | 
						|
          working-directory: rust/kcl-python-bindings
 | 
						|
          target: x86_64
 | 
						|
          args: --release --out dist --find-interpreter
 | 
						|
          sccache: 'true'
 | 
						|
          manylinux: auto
 | 
						|
          before-script-linux: |
 | 
						|
            yum install openssl-devel -y
 | 
						|
      - name: Upload wheels
 | 
						|
        uses: actions/upload-artifact@v4
 | 
						|
        with:
 | 
						|
          name: wheels-linux-x86_64
 | 
						|
          path: rust/kcl-python-bindings/dist
 | 
						|
 | 
						|
  windows:
 | 
						|
    runs-on: windows-16-cores
 | 
						|
    strategy:
 | 
						|
      matrix:
 | 
						|
        target:
 | 
						|
          - x64
 | 
						|
      fail-fast: false
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - uses: actions/setup-python@v5
 | 
						|
        with:
 | 
						|
          python-version: 3.x
 | 
						|
          architecture: ${{ matrix.target }}
 | 
						|
      - name: Build wheels
 | 
						|
        uses: PyO3/maturin-action@v1
 | 
						|
        with:
 | 
						|
          working-directory: rust/kcl-python-bindings
 | 
						|
          target: ${{ matrix.target }}
 | 
						|
          args: --release --out dist --find-interpreter
 | 
						|
          sccache: 'true'
 | 
						|
      - name: Upload wheels
 | 
						|
        uses: actions/upload-artifact@v4
 | 
						|
        with:
 | 
						|
          name: wheels-windows-${{ matrix.target }}
 | 
						|
          path: rust/kcl-python-bindings/dist
 | 
						|
 | 
						|
  macos:
 | 
						|
    runs-on: macos-latest
 | 
						|
    strategy:
 | 
						|
      matrix:
 | 
						|
        target:
 | 
						|
          - x86_64
 | 
						|
          - aarch64
 | 
						|
      fail-fast: false
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - uses: actions/setup-python@v5
 | 
						|
        with:
 | 
						|
          python-version: 3.x
 | 
						|
      - name: Build wheels
 | 
						|
        uses: PyO3/maturin-action@v1
 | 
						|
        with:
 | 
						|
          working-directory: rust/kcl-python-bindings
 | 
						|
          target: ${{ matrix.target }}
 | 
						|
          args: --release --out dist --find-interpreter
 | 
						|
          sccache: 'true'
 | 
						|
      - name: Upload wheels
 | 
						|
        uses: actions/upload-artifact@v4
 | 
						|
        with:
 | 
						|
          name: wheels-macos-${{ matrix.target }}
 | 
						|
          path: rust/kcl-python-bindings/dist
 | 
						|
 | 
						|
  test:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - name: Install uv
 | 
						|
        uses: astral-sh/setup-uv@v5
 | 
						|
      - uses: actions-rust-lang/setup-rust-toolchain@v1
 | 
						|
      - uses: taiki-e/install-action@just
 | 
						|
      - name: Run tests
 | 
						|
        run: |
 | 
						|
          cd rust/kcl-python-bindings
 | 
						|
          just setup-uv
 | 
						|
          just test
 | 
						|
        env:
 | 
						|
          KITTYCAD_API_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN }}
 | 
						|
 | 
						|
  sdist:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - name: Install the latest version of uv
 | 
						|
        uses: astral-sh/setup-uv@v5
 | 
						|
      - name: Install codespell
 | 
						|
        run: |
 | 
						|
            uv venv .venv
 | 
						|
            echo "VIRTUAL_ENV=.venv" >> $GITHUB_ENV
 | 
						|
            echo "$PWD/.venv/bin" >> $GITHUB_PATH
 | 
						|
            uv pip install pip --upgrade
 | 
						|
      - name: Build sdist
 | 
						|
        uses: PyO3/maturin-action@v1
 | 
						|
        with:
 | 
						|
          working-directory: rust/kcl-python-bindings
 | 
						|
          command: sdist
 | 
						|
          args: --out dist
 | 
						|
      - name: Upload sdist
 | 
						|
        uses: actions/upload-artifact@v4
 | 
						|
        with:
 | 
						|
          name: wheels-sdist
 | 
						|
          path: rust/kcl-python-bindings/dist
 | 
						|
 | 
						|
  release:
 | 
						|
    name: Release
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    permissions:
 | 
						|
      contents: write
 | 
						|
    if: startsWith(github.ref, 'refs/tags/')
 | 
						|
    needs: [linux-x86_64, windows, macos, sdist]
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - uses: actions/download-artifact@v4
 | 
						|
        with:
 | 
						|
          path: rust/kcl-python-bindings
 | 
						|
      - name: Install the latest version of uv
 | 
						|
        uses: astral-sh/setup-uv@v5
 | 
						|
      - name: do uv things
 | 
						|
        run: |
 | 
						|
            cd rust/kcl-python-bindings
 | 
						|
            uv venv .venv
 | 
						|
            echo "VIRTUAL_ENV=.venv" >> $GITHUB_ENV
 | 
						|
            echo "$PWD/.venv/bin" >> $GITHUB_PATH
 | 
						|
            uv pip install pip --upgrade
 | 
						|
      - name: Publish to PyPI
 | 
						|
        uses: PyO3/maturin-action@v1
 | 
						|
        env:
 | 
						|
          MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
 | 
						|
        with:
 | 
						|
          working-directory: rust/kcl-python-bindings
 | 
						|
          command: upload
 | 
						|
          args: --non-interactive --skip-existing wheels-*/*
 |