diff --git a/.github/workflows/CI.yml b/.github/workflows/build.yml similarity index 74% rename from .github/workflows/CI.yml rename to .github/workflows/build.yml index 2b122a8..7177eed 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/build.yml @@ -1,9 +1,8 @@ -# This file is autogenerated by maturin v1.0.1 -# To update, run -# -# maturin generate-ci github --pytest -# -name: CI +# These jobs should be run only on commits to main and version tags. +# They test building wheels for all supported platforms and uploading them as artifacts. +# For version tags, they also publish the wheels to PyPI. + +name: build-and-release on: push: @@ -11,52 +10,15 @@ on: - main tags: - 'v*' - pull_request: workflow_dispatch: permissions: contents: read -jobs: - - pre-commit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: "3.9" - - uses: pre-commit/action@v3.0.1 - - test-python: +env: + CARGO_TERM_COLOR: always - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - python-version: - - '3.9' - - '3.10' - - '3.11' - - '3.12' - - 'pypy3.9' - steps: - - uses: actions/checkout@v4 - - name: install rust stable - uses: dtolnay/rust-toolchain@stable - - name: cache rust - uses: Swatinem/rust-cache@v2 - with: - key: test-v1 - - name: set up python - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - run: pip install -e .[testing] - env: - RUST_BACKTRACE: 1 - - run: pip freeze - # - run: pytest +jobs: linux: runs-on: ubuntu-latest @@ -192,22 +154,10 @@ jobs: name: wheels path: dist - # https://github.com/marketplace/actions/alls-green#why used for branch protection checks - check: - if: always() - needs: [pre-commit, test-python, linux, windows, macos, sdist] - runs-on: ubuntu-latest - steps: - - name: Decide whether the needed jobs succeeded or failed - uses: re-actors/alls-green@release/v1 - with: - jobs: ${{ toJSON(needs) }} - allowed-failures: coverage - release: runs-on: ubuntu-latest if: "startsWith(github.ref, 'refs/tags/')" - needs: [pre-commit, test-python, linux, windows, macos, sdist] + needs: [linux, windows, macos, sdist] steps: - uses: actions/download-artifact@v3 with: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..537d28c --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,92 @@ +# These jobs should be run on all commits, pull requests, and version tags. +# They run formatting, linting and code tests. + +name: tests + +on: + push: + branches: + - main + tags: + - 'v*' + pull_request: + workflow_dispatch: + +permissions: + contents: read + +env: + CARGO_TERM_COLOR: always + +jobs: + + pre-commit: + + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.9" + - uses: pre-commit/action@v3.0.1 + + test-cargo: + + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: install rust stable + uses: dtolnay/rust-toolchain@stable + - name: cache rust + uses: Swatinem/rust-cache@v2 + - name: Run tests + run: cargo test -p analyzer --lib --verbose + + test-python: + + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + python-version: + - '3.9' + - '3.10' + - '3.11' + - '3.12' + - 'pypy3.9' + include: + - os: windows-latest + python-version: '3.9' + - os: macos-latest + python-version: '3.9' + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + - name: install rust stable + uses: dtolnay/rust-toolchain@stable + - name: cache rust + uses: Swatinem/rust-cache@v2 + with: + key: test-v1 + - name: set up python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - run: pip install -e .[testing] + env: + RUST_BACKTRACE: 1 + - run: pip freeze + # - run: pytest + + check: + if: always() + needs: [pre-commit, test-cargo, test-python] + runs-on: ubuntu-latest + steps: + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} + allowed-failures: coverage diff --git a/crates/py_binding/Cargo.toml b/crates/py_binding/Cargo.toml index 779d69f..bf8ae01 100644 --- a/crates/py_binding/Cargo.toml +++ b/crates/py_binding/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "rust_analyzer_py" +name = "sphinx_rust" version = "0.0.1" publish = false edition = "2021"