diff --git a/.github/workflows/black-ruff.yml b/.github/workflows/black-ruff.yml index aaa98e3..fae3f72 100644 --- a/.github/workflows/black-ruff.yml +++ b/.github/workflows/black-ruff.yml @@ -4,7 +4,7 @@ jobs: black-format-check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: psf/black@stable with: options: "--diff --check" @@ -12,5 +12,5 @@ jobs: ruff-format-check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: chartboost/ruff-action@v1 diff --git a/.github/workflows/check-urls.yml b/.github/workflows/check-urls.yml index 3d177eb..c8ee37e 100644 --- a/.github/workflows/check-urls.yml +++ b/.github/workflows/check-urls.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: urls-checker-code uses: urlstechie/urlchecker-action@master diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index bea1259..2170757 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -32,11 +32,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 # Override language selection by uncommenting this and choosing your languages # with: # languages: go, javascript, csharp, python, cpp, java, ruby @@ -44,7 +44,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). # If this step fails, then you should remove it and run the build manually (see below). - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # â„šī¸ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -58,4 +58,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 3a67c85..e318806 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -17,7 +17,7 @@ jobs: os: [ubuntu-latest] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: tlylt/install-graphviz@v1 @@ -52,7 +52,7 @@ jobs: export PYTHONPATH= - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index fe51c4d..ea0b764 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -13,7 +13,7 @@ jobs: steps: # Checkout the repository - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Install codespell - name: Install codespell diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..4fcb7ab --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,64 @@ +name: CI + +on: + push: + pull_request: + +jobs: + tests: + name: Test Python ${{ matrix.python-version }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + permissions: + contents: read + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + python-version: '3.13' + - os: ubuntu-latest + python-version: '3.12' + - os: windows-latest + python-version: '3.12' + - os: macos-latest + python-version: '3.12' + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install system dependencies (Linux) + if: runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install -y pandoc graphviz + + - name: Install system dependencies (macOS) + if: runner.os == 'macOS' + run: brew install pandoc graphviz + + - name: Install pip tools + run: python -m pip install --upgrade pip setuptools wheel + + - name: Install requirements + run: pip install -r requirements.txt + + - name: Install requirements-dev + run: pip install -r requirements-dev.txt + + - name: Build wheel + run: python -m pip wheel . --wheel-dir dist + + - name: Install package + run: pip install . + + - name: Run tests + run: python -m pytest --durations=10 --ignore-glob=**LONG*.py --ignore-glob=**notebook*.py + + - uses: actions/upload-artifact@v4 + with: + name: wheel-${{ matrix.os }}-${{ matrix.python-version }} + path: dist/ diff --git a/.github/workflows/wheels-any.yml b/.github/workflows/wheels-any.yml index ab58575..e1b2cbc 100644 --- a/.github/workflows/wheels-any.yml +++ b/.github/workflows/wheels-any.yml @@ -15,7 +15,7 @@ jobs: os: [ubuntu-latest] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: