From dc19f42e48c6641a5ab22cf00a5dd1b054f6a0e0 Mon Sep 17 00:00:00 2001 From: Chris Sewell Date: Sat, 27 Apr 2024 20:17:43 +0200 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=A7=AA=20Split=20up=20CI=20jobs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/{CI.yml => build.yml} | 68 +++----------------- .github/workflows/tests.yml | 84 +++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 59 deletions(-) rename .github/workflows/{CI.yml => build.yml} (74%) create mode 100644 .github/workflows/tests.yml 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..4e2aa84 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,84 @@ +# 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 --verbose + + test-python: + + 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 + + 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 From 71830d9c74fa21e269a2d3710974b382ff337df9 Mon Sep 17 00:00:00 2001 From: Chris Sewell Date: Sat, 27 Apr 2024 20:21:57 +0200 Subject: [PATCH 2/3] update --- .github/workflows/tests.yml | 2 +- crates/py_binding/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4e2aa84..67e368a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -40,7 +40,7 @@ jobs: - name: cache rust uses: Swatinem/rust-cache@v2 - name: Run tests - run: cargo test --verbose + run: cargo test -p analyzer --lib --verbose test-python: 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" From 4133719a3c60380c9530aca92c62b35d1b09a94e Mon Sep 17 00:00:00 2001 From: Chris Sewell Date: Sat, 27 Apr 2024 20:24:46 +0200 Subject: [PATCH 3/3] Update tests.yml --- .github/workflows/tests.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 67e368a..537d28c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -44,16 +44,24 @@ jobs: test-python: - runs-on: ubuntu-latest 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