Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
run: |
git add .
uv run prek run --all-files
uv run prek run --all-files --skip no-commit-to-branch
- name: Test with pytest
working-directory: ${{ env.WORKING_DIR }}
if: matrix.project_type == 'application'
Expand Down Expand Up @@ -235,7 +235,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
run: |
git add .
uv run prek run --all-files
uv run prek run --all-files --skip no-commit-to-branch
- name: Test with pytest
working-directory: ${{ env.WORKING_DIR }}
run: uv run pytest
Expand Down Expand Up @@ -304,7 +304,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
run: |
git add .
$PREK run --all-files
$PREK run --all-files --skip no-commit-to-branch
shell: bash
env:
PREK: ${{ runner.os == 'Windows' && '.venv/Scripts/prek.exe' || '.venv/bin/prek' }}
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/testing_fastapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
run: |
git add .
uv run prek run --all-files
uv run prek run --all-files --skip no-commit-to-branch
- name: make .env
working-directory: ${{ env.WORKING_DIR }}
run: touch .env
Expand Down Expand Up @@ -92,7 +92,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
run: |
git add .
uv run prek run --all-files
uv run prek run --all-files --skip no-commit-to-branch
- name: Test with pytest
working-directory: ${{ env.WORKING_DIR }}
if: matrix.project_type == 'application'
Expand Down Expand Up @@ -123,7 +123,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
run: |
git add .
.venv/bin/prek run --all-files
.venv/bin/prek run --all-files --skip no-commit-to-branch
- name: make .env
working-directory: ${{ env.WORKING_DIR }}
run: touch .env
Expand Down Expand Up @@ -159,7 +159,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
run: |
git add .
.venv/bin/prek run --all-files
.venv/bin/prek run --all-files --skip no-commit-to-branch
- name: Test with pytest
working-directory: ${{ env.WORKING_DIR }}
if: matrix.project_type == 'application'
Expand Down Expand Up @@ -192,7 +192,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
run: |
git add .
uv run prek run --all-files
uv run prek run --all-files --skip no-commit-to-branch
- name: make .env
working-directory: ${{ env.WORKING_DIR }}
run: touch .env
Expand Down Expand Up @@ -234,7 +234,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
run: |
git add .
uv run prek run --all-files
uv run prek run --all-files --skip no-commit-to-branch
- name: Test with pytest
working-directory: ${{ env.WORKING_DIR }}
if: matrix.project_type == 'application'
Expand Down Expand Up @@ -269,7 +269,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
run: |
git add .
.venv/bin/prek run --all-files
.venv/bin/prek run --all-files --skip no-commit-to-branch
- name: make .env
working-directory: ${{ env.WORKING_DIR }}
run: touch .env
Expand Down Expand Up @@ -309,7 +309,7 @@ jobs:
working-directory: ${{ env.WORKING_DIR }}
run: |
git add .
.venv/bin/prek run --all-files
.venv/bin/prek run --all-files --skip no-commit-to-branch
- name: Test with pytest
working-directory: ${{ env.WORKING_DIR }}
if: matrix.project_type == 'application'
Expand Down
54 changes: 18 additions & 36 deletions src/github_actions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ fn build_actions_python_test_versions(github_action_python_test_versions: &[Stri
.join(", ")
}

fn create_prek_skip(type_checker: &TypeChecker) -> String {
let mut prek_skip = String::from("\n env:\n PREK_SKIP: no-commit-to-branch");
if let TypeChecker::Pyrefly = type_checker {
prek_skip.push_str(",pyrefly-check");
}

prek_skip
}

fn create_setuptools_ci_testing_linux_only_file(
source_dir: &str,
min_python_version: &str,
Expand All @@ -26,10 +35,7 @@ fn create_setuptools_ci_testing_linux_only_file(
TypeChecker::Mypy => format!("mypy {source_dir} tests"),
TypeChecker::Pyrefly => "pyrefly check".to_string(),
};
let prek_skip = match type_checker {
TypeChecker::Mypy => "",
TypeChecker::Pyrefly => "\n env:\n SKIP: pyrefly-check",
};
let prek_skip = create_prek_skip(type_checker);
let type_checker = type_checker.to_string();

format!(
Expand Down Expand Up @@ -102,10 +108,7 @@ fn create_setuptools_ci_testing_fastapi_file(
TypeChecker::Mypy => format!("mypy {source_dir} tests"),
TypeChecker::Pyrefly => "pyrefly check".to_string(),
};
let prek_skip = match type_checker {
TypeChecker::Mypy => "",
TypeChecker::Pyrefly => "\n env:\n SKIP: pyrefly-check",
};
let prek_skip = create_prek_skip(type_checker);
let type_checker = type_checker.to_string();

format!(
Expand Down Expand Up @@ -203,10 +206,7 @@ fn create_uv_ci_testing_linux_only_file(
TypeChecker::Mypy => format!("uv run mypy {source_dir} tests"),
TypeChecker::Pyrefly => "uv run pyrefly check".to_string(),
};
let prek_skip = match type_checker {
TypeChecker::Mypy => "",
TypeChecker::Pyrefly => "\n env:\n SKIP: pyrefly-check",
};
let prek_skip = create_prek_skip(type_checker);
let type_checker = type_checker.to_string();

format!(
Expand Down Expand Up @@ -281,10 +281,7 @@ fn create_uv_ci_testing_fastapi_file(
TypeChecker::Mypy => format!("uv run mypy {source_dir} tests"),
TypeChecker::Pyrefly => "uv run pyrefly check".to_string(),
};
let prek_skip = match type_checker {
TypeChecker::Mypy => "",
TypeChecker::Pyrefly => "\n env:\n SKIP: pyrefly-check",
};
let prek_skip = create_prek_skip(type_checker);
let type_checker = type_checker.to_string();

format!(
Expand Down Expand Up @@ -387,10 +384,7 @@ fn create_ci_testing_linux_only_file_pyo3(
(Pyo3PythonManager::Setuptools, TypeChecker::Mypy) => format!("mypy {source_dir} tests"),
(Pyo3PythonManager::Setuptools, TypeChecker::Pyrefly) => "pyrefly check".to_string(),
};
let prek_skip = match type_checker {
TypeChecker::Mypy => "",
TypeChecker::Pyrefly => "\n env:\n SKIP: pyrefly-check",
};
let prek_skip = create_prek_skip(type_checker);
let type_checker = type_checker.to_string();
match pyo3_python_manager {
Pyo3PythonManager::Uv => format!(
Expand Down Expand Up @@ -591,10 +585,7 @@ fn create_ci_testing_fastapi_file_pyo3(
(Pyo3PythonManager::Setuptools, TypeChecker::Mypy) => format!("mypy {source_dir} tests"),
(Pyo3PythonManager::Setuptools, TypeChecker::Pyrefly) => "pyrefly check".to_string(),
};
let prek_skip = match type_checker {
TypeChecker::Mypy => "",
TypeChecker::Pyrefly => "\n env:\n SKIP: pyrefly-check",
};
let prek_skip = create_prek_skip(type_checker);
let type_checker = type_checker.to_string();
match pyo3_python_manager {
Pyo3PythonManager::Uv => format!(
Expand Down Expand Up @@ -940,10 +931,7 @@ fn create_setuptools_ci_testing_multi_os_file(
TypeChecker::Mypy => format!("mypy {source_dir} tests"),
TypeChecker::Pyrefly => "pyrefly check".to_string(),
};
let prek_skip = match type_checker {
TypeChecker::Mypy => "",
TypeChecker::Pyrefly => "\n env:\n SKIP: pyrefly-check",
};
let prek_skip = create_prek_skip(type_checker);
let type_checker = type_checker.to_string();

format!(
Expand Down Expand Up @@ -1019,10 +1007,7 @@ fn create_ci_testing_multi_os_file_pyo3(
(Pyo3PythonManager::Setuptools, TypeChecker::Mypy) => format!("mypy {source_dir} tests"),
(Pyo3PythonManager::Setuptools, TypeChecker::Pyrefly) => "pyrefly check".to_string(),
};
let prek_skip = match type_checker {
TypeChecker::Mypy => "",
TypeChecker::Pyrefly => "\n env:\n SKIP: pyrefly-check",
};
let prek_skip = create_prek_skip(type_checker);
let type_checker = type_checker.to_string();
match pyo3_python_manager {
Pyo3PythonManager::Uv => format!(
Expand Down Expand Up @@ -1221,10 +1206,7 @@ fn create_uv_ci_testing_multi_os_file(
TypeChecker::Mypy => format!("uv run mypy {source_dir} tests"),
TypeChecker::Pyrefly => "uv run pyrefly check".to_string(),
};
let prek_skip = match type_checker {
TypeChecker::Mypy => "",
TypeChecker::Pyrefly => "\n env:\n SKIP: pyrefly-check",
};
let prek_skip = create_prek_skip(type_checker);
let type_checker = type_checker.to_string();

format!(
Expand Down
1 change: 1 addition & 0 deletions src/project_generator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,7 @@ hooks = [
{{ id = "check-toml" }},
{{ id = "check-yaml" }},
{{ id = "end-of-file-fixer" }},
{{ id = "no-commit-to-branch" }},
{{ id = "trailing-whitespace" }},
]
"#,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
source: src/github_actions.rs
expression: content
---
"name: Testing\n\non:\n push:\n branches:\n - main\n pull_request:\nenv:\n CARGO_TERM_COLOR: always\n RUST_BACKTRACE: 1\n RUSTFLAGS: \"-D warnings\"\n PYTHON_VERSION: \"3.10\"\n SECRET_KEY: \"someKey\"\n PRODUCTION_MODE: false\n FIRST_SUPERUSER_EMAIL: \"some@email.com\"\n FIRST_SUPERUSER_PASSWORD: \"somePassword1!\"\n FIRST_SUPERUSER_NAME: \"Super User\"\n POSTGRES_HOST: \"127.0.0.1\"\n POSTGRES_USER: \"postgres\"\n POSTGRES_PASSWORD: \"test_password\"\n POSTGRES_DB: \"test_db\"\n VALKEY_HOST: \"127.0.0.1\"\n VALKEY_PASSWORD: \"test_password\"\n MEILISEARCH_HOST: http://127.0.0.1\n STACK_NAME: \"test-stack\"\n DOMAIN: \"127.0.0.1\"\n LOG_LEVEL: \"DEBUG\"\n CI: true\njobs:\n clippy:\n name: Clippy\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install Rust\n uses: dtolnay/rust-toolchain@stable\n with:\n components: clippy\n - name: Cache dependencies\n uses: Swatinem/rust-cache@v2\n - name: Run cargo clippy\n run: cargo clippy --all-targets -- --deny warnings\n fmt:\n name: Rustfmt\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install Rust\n uses: dtolnay/rust-toolchain@stable\n with:\n components: rustfmt\n - name: Cache dependencies\n uses: Swatinem/rust-cache@v2\n - name: Run cargo fmt\n run: cargo fmt --all -- --check\n python-linting:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install uv\n uses: astral-sh/setup-uv@v8\n with:\n enable-cache: true\n - name: Set up Python\n uses: actions/setup-python@v6\n with:\n python-version: ${{ env.PYTHON_VERSION }}\n - name: Install Dependencies\n run: |\n uv sync --frozen\n uv run maturin build\n - name: Ruff format check\n run: uv run ruff format my_project tests --check\n - name: Lint with ruff\n run: uv run ruff check .\n - name: mypy check\n run: uv run mypy my_project tests\n prek:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - uses: j178/prek-action@v2\n testing:\n strategy:\n fail-fast: false\n matrix:\n python-version: [\"3.10\", \"3.11\", \"3.12\", \"3.13\", \"3.14\"]\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install Rust\n uses: dtolnay/rust-toolchain@stable\n - name: Cache dependencies\n uses: Swatinem/rust-cache@v2\n - name: Install sqlx-cli\n run: cargo install sqlx-cli --no-default-features -F native-tls -F postgres\n - name: Install uv\n uses: astral-sh/setup-uv@v8\n with:\n enable-cache: true\n - name: Set up Python ${{ matrix.python-version }}\n uses: actions/setup-python@v6\n with:\n python-version: ${{ matrix.python-version }}\n - name: Install Dependencies\n run: |\n uv sync --frozen\n uv run maturin build\n - name: make .env\n run: touch .env\n - name: Start docker containers\n run: docker compose up db valkey migrations -d\n - name: Test with pytest\n run: uv run pytest -n auto\n"
"name: Testing\n\non:\n push:\n branches:\n - main\n pull_request:\nenv:\n CARGO_TERM_COLOR: always\n RUST_BACKTRACE: 1\n RUSTFLAGS: \"-D warnings\"\n PYTHON_VERSION: \"3.10\"\n SECRET_KEY: \"someKey\"\n PRODUCTION_MODE: false\n FIRST_SUPERUSER_EMAIL: \"some@email.com\"\n FIRST_SUPERUSER_PASSWORD: \"somePassword1!\"\n FIRST_SUPERUSER_NAME: \"Super User\"\n POSTGRES_HOST: \"127.0.0.1\"\n POSTGRES_USER: \"postgres\"\n POSTGRES_PASSWORD: \"test_password\"\n POSTGRES_DB: \"test_db\"\n VALKEY_HOST: \"127.0.0.1\"\n VALKEY_PASSWORD: \"test_password\"\n MEILISEARCH_HOST: http://127.0.0.1\n STACK_NAME: \"test-stack\"\n DOMAIN: \"127.0.0.1\"\n LOG_LEVEL: \"DEBUG\"\n CI: true\njobs:\n clippy:\n name: Clippy\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install Rust\n uses: dtolnay/rust-toolchain@stable\n with:\n components: clippy\n - name: Cache dependencies\n uses: Swatinem/rust-cache@v2\n - name: Run cargo clippy\n run: cargo clippy --all-targets -- --deny warnings\n fmt:\n name: Rustfmt\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install Rust\n uses: dtolnay/rust-toolchain@stable\n with:\n components: rustfmt\n - name: Cache dependencies\n uses: Swatinem/rust-cache@v2\n - name: Run cargo fmt\n run: cargo fmt --all -- --check\n python-linting:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install uv\n uses: astral-sh/setup-uv@v8\n with:\n enable-cache: true\n - name: Set up Python\n uses: actions/setup-python@v6\n with:\n python-version: ${{ env.PYTHON_VERSION }}\n - name: Install Dependencies\n run: |\n uv sync --frozen\n uv run maturin build\n - name: Ruff format check\n run: uv run ruff format my_project tests --check\n - name: Lint with ruff\n run: uv run ruff check .\n - name: mypy check\n run: uv run mypy my_project tests\n prek:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - uses: j178/prek-action@v2\n env:\n PREK_SKIP: no-commit-to-branch\n testing:\n strategy:\n fail-fast: false\n matrix:\n python-version: [\"3.10\", \"3.11\", \"3.12\", \"3.13\", \"3.14\"]\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install Rust\n uses: dtolnay/rust-toolchain@stable\n - name: Cache dependencies\n uses: Swatinem/rust-cache@v2\n - name: Install sqlx-cli\n run: cargo install sqlx-cli --no-default-features -F native-tls -F postgres\n - name: Install uv\n uses: astral-sh/setup-uv@v8\n with:\n enable-cache: true\n - name: Set up Python ${{ matrix.python-version }}\n uses: actions/setup-python@v6\n with:\n python-version: ${{ matrix.python-version }}\n - name: Install Dependencies\n run: |\n uv sync --frozen\n uv run maturin build\n - name: make .env\n run: touch .env\n - name: Start docker containers\n run: docker compose up db valkey migrations -d\n - name: Test with pytest\n run: uv run pytest -n auto\n"
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
source: src/github_actions.rs
expression: content
---
"name: Testing\n\non:\n push:\n branches:\n - main\n pull_request:\nenv:\n CARGO_TERM_COLOR: always\n RUST_BACKTRACE: 1\n RUSTFLAGS: \"-D warnings\"\n PYTHON_VERSION: \"3.10\"\njobs:\n clippy:\n name: Clippy\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install Rust\n uses: dtolnay/rust-toolchain@stable\n with:\n components: clippy\n - name: Cache dependencies\n uses: Swatinem/rust-cache@v2\n - name: Run cargo clippy\n run: cargo clippy --all-targets -- --deny warnings\n fmt:\n name: Rustfmt\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install Rust\n uses: dtolnay/rust-toolchain@stable\n with:\n components: rustfmt\n - name: Cache dependencies\n uses: Swatinem/rust-cache@v2\n - name: Run cargo fmt\n run: cargo fmt --all -- --check\n python-linting:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install uv\n uses: astral-sh/setup-uv@v8\n with:\n enable-cache: true\n - name: Set up Python\n uses: actions/setup-python@v6\n with:\n python-version: ${{ env.PYTHON_VERSION }}\n - name: Install Dependencies\n run: |\n uv sync --frozen\n uv run maturin build\n - name: Ruff format check\n run: uv run ruff format my_project tests --check\n - name: Lint with ruff\n run: uv run ruff check .\n - name: mypy check\n run: uv run mypy my_project tests\n prek:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - uses: j178/prek-action@v2\n testing:\n strategy:\n fail-fast: false\n matrix:\n python-version: [\"3.10\", \"3.11\", \"3.12\", \"3.13\", \"3.14\"]\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install uv\n uses: astral-sh/setup-uv@v8\n with:\n enable-cache: true\n - name: Set up Python ${{ matrix.python-version }}\n uses: actions/setup-python@v6\n with:\n python-version: ${{ matrix.python-version }}\n - name: Install Dependencies\n run: |\n uv sync --frozen\n uv run maturin build\n - name: Test with pytest\n run: uv run pytest\n"
"name: Testing\n\non:\n push:\n branches:\n - main\n pull_request:\nenv:\n CARGO_TERM_COLOR: always\n RUST_BACKTRACE: 1\n RUSTFLAGS: \"-D warnings\"\n PYTHON_VERSION: \"3.10\"\njobs:\n clippy:\n name: Clippy\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install Rust\n uses: dtolnay/rust-toolchain@stable\n with:\n components: clippy\n - name: Cache dependencies\n uses: Swatinem/rust-cache@v2\n - name: Run cargo clippy\n run: cargo clippy --all-targets -- --deny warnings\n fmt:\n name: Rustfmt\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install Rust\n uses: dtolnay/rust-toolchain@stable\n with:\n components: rustfmt\n - name: Cache dependencies\n uses: Swatinem/rust-cache@v2\n - name: Run cargo fmt\n run: cargo fmt --all -- --check\n python-linting:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install uv\n uses: astral-sh/setup-uv@v8\n with:\n enable-cache: true\n - name: Set up Python\n uses: actions/setup-python@v6\n with:\n python-version: ${{ env.PYTHON_VERSION }}\n - name: Install Dependencies\n run: |\n uv sync --frozen\n uv run maturin build\n - name: Ruff format check\n run: uv run ruff format my_project tests --check\n - name: Lint with ruff\n run: uv run ruff check .\n - name: mypy check\n run: uv run mypy my_project tests\n prek:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - uses: j178/prek-action@v2\n env:\n PREK_SKIP: no-commit-to-branch\n testing:\n strategy:\n fail-fast: false\n matrix:\n python-version: [\"3.10\", \"3.11\", \"3.12\", \"3.13\", \"3.14\"]\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v7\n - name: Install uv\n uses: astral-sh/setup-uv@v8\n with:\n enable-cache: true\n - name: Set up Python ${{ matrix.python-version }}\n uses: actions/setup-python@v6\n with:\n python-version: ${{ matrix.python-version }}\n - name: Install Dependencies\n run: |\n uv sync --frozen\n uv run maturin build\n - name: Test with pytest\n run: uv run pytest\n"
Loading