Skip to content

feat(copier): enhance copier.yml #1818

feat(copier): enhance copier.yml

feat(copier): enhance copier.yml #1818

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
# Tests for the template
test:
strategy:
fail-fast: false
matrix:
python-version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
os:
- ubuntu-latest
# - windows-latest
- macOS-latest
runs-on: ${{ matrix.os }}
name: "Template: ${{ matrix.python-version }} - ${{ matrix.os }}"
steps:
- uses: actions/checkout@v4
- name: Install poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@v5
with:
cache: poetry
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: poetry install
shell: bash
- name: Test with Pytest
run: poetry run pytest
shell: bash
# Generate package, run test, run linting and build docs
copier:
strategy:
fail-fast: false
matrix:
script:
- run: "poetry run python -m pytest tests"
dir: ""
name: "pytest"
- run: "git init && git add . && pipx run pre-commit run -a"
dir: ""
name: "pre-commit"
- run: "poetry run make html"
dir: "docs"
name: "docs"
extra_options:
- project_name: "Simple Package"
project_slug: "simple-package"
value: ""
- project_name: "Simple CLI"
project_slug: "simple-cli"
value: "--data 'has_cli=yes' --data 'cli_name=mycli'"
- project_name: "Django Package"
project_slug: "django-simple-package"
value: "--data 'is_django_package=yes' --data 'documentation=yes'"
runs-on: ubuntu-latest
name: "Generated: ${{ matrix.script.name }} ${{ matrix.extra_options.project_name }}"
steps:
- uses: actions/checkout@v4
- uses: fregante/setup-git-user@v2
- uses: actions/setup-python@v5
id: setup-python
with:
python-version: "3.11"
- run: |
pipx run copier copy \
. \
my-project \
--UNSAFE \
--data 'full_name=Bruno Alla' \
--data '[email protected]' \
--data 'github_username=dummy' \
--data 'project_name=${{ matrix.extra_options.project_name }}' \
--data 'project_slug=${{ matrix.extra_options.project_slug }}' \
--data 'project_short_description=Just a great project' \
--data 'open_source_license=MIT' \
--data "venv_version=3.11" \
${{ matrix.extra_options.value }} \
--defaults
env:
PIPX_DEFAULT_PYTHON: ${{ steps.setup-python.outputs.python-path }}
- run: cat pyproject.toml
working-directory: my-project
- run: pipx install poetry
env:
PIPX_DEFAULT_PYTHON: ${{ steps.setup-python.outputs.python-path }}
- run: poetry install --with docs
working-directory: my-project
- run: ${{ matrix.script.run }}
working-directory: my-project/${{ matrix.script.dir }}