move kcl.py to this repo (#5587)
* ci for kcl-python-bindings Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * bettter concurrency Signed-off-by: Jess Frazelle <github@jessfraz.com> * cleanup files Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updaets Signed-off-by: Jess Frazelle <github@jessfraz.com> * updaets Signed-off-by: Jess Frazelle <github@jessfraz.com> * updaets Signed-off-by: Jess Frazelle <github@jessfraz.com> * updaets Signed-off-by: Jess Frazelle <github@jessfraz.com> * format Signed-off-by: Jess Frazelle <github@jessfraz.com> * format Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
		
							
								
								
									
										179
									
								
								.github/workflows/kcl-python-bindings.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										179
									
								
								.github/workflows/kcl-python-bindings.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,179 @@
 | 
			
		||||
# 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/download-artifact@v4
 | 
			
		||||
      - name: Install the latest version of uv
 | 
			
		||||
        uses: astral-sh/setup-uv@v5
 | 
			
		||||
      - name: Install codespell
 | 
			
		||||
        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-*/*
 | 
			
		||||
							
								
								
									
										24
									
								
								.github/workflows/ruff.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								.github/workflows/ruff.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
name: ruff
 | 
			
		||||
concurrency:
 | 
			
		||||
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
 | 
			
		||||
  cancel-in-progress: true
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches: main
 | 
			
		||||
    paths:
 | 
			
		||||
      - '**.py'
 | 
			
		||||
      - .github/workflows/ruff.yml
 | 
			
		||||
  pull_request:
 | 
			
		||||
    paths:
 | 
			
		||||
      - '**.py'
 | 
			
		||||
      - .github/workflows/ruff.yml
 | 
			
		||||
permissions:
 | 
			
		||||
  contents: read
 | 
			
		||||
  pull-requests: write
 | 
			
		||||
jobs:
 | 
			
		||||
  ruff:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: astral-sh/ruff-action@v3
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user