diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 1b72657..208cd25 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -15,8 +15,11 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: extractions/setup-just@v2 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: "3.14" + - uses: extractions/setup-just@v4 with: github-token: ${{ secrets.GITHUB_TOKEN }} - name: Install dependencies @@ -53,23 +56,23 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ["3.9", "3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: # Checkout either the PR or the branch - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || '' }} - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: "${{matrix.python-version}}" cache: 'pip' cache-dependency-path: | pyproject.toml - - uses: extractions/setup-just@v2 + - uses: extractions/setup-just@v4 with: github-token: ${{ secrets.GITHUB_TOKEN }} @@ -88,7 +91,7 @@ jobs: run: just test - name: Upload test results - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 if: always() with: name: reports-${{ matrix.os }}-${{ matrix.python-version }} diff --git a/justfile b/justfile index 49b6790..0ff8ad5 100644 --- a/justfile +++ b/justfile @@ -1,29 +1,32 @@ # Note: Windows stores virtual environment scripts under Scripts/ directory instead of bin/ +# and uses 'python'/'pip' instead of 'python3'/'pip3' venv_bin := if os_family() == "windows" { ".venv/Scripts" } else { ".venv/bin" } +python := if os_family() == "windows" { "python" } else { "python3" } +pip := if os_family() == "windows" { "pip" } else { "pip3" } # Install python virtual environment venv: - [ -d .venv ] || python3 -m venv .venv - {{venv_bin}}/pip3 install . + [ -d .venv ] || {{python}} -m venv .venv + {{venv_bin}}/{{pip}} install . # Install dev dependencies install_dev: - {{venv_bin}}/pip3 install pylint black + {{venv_bin}}/{{pip}} install pylint black # Run formatting and linting lint: - {{venv_bin}}/python3 -m black . - {{venv_bin}}/python3 -m pylint AWS + {{venv_bin}}/{{python}} -m black . + {{venv_bin}}/{{python}} -m pylint AWS # Check formatting check-format: - {{venv_bin}}/python3 -m black --check . + {{venv_bin}}/{{python}} -m black --check . # Check linting check-lint: - {{venv_bin}}/python3 -m pylint AWS + {{venv_bin}}/{{python}} -m pylint AWS # Run tests test *args='': - {{venv_bin}}/python3 -m robot.run --outputdir output {{args}} tests + {{venv_bin}}/{{python}} -m robot.run --outputdir output {{args}} tests