diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 525fe71..e3c69c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,15 +2,12 @@ name: CI on: push: - branches: - - main - tags: - - "v*" + branches: [main] + tags: [v*] pull_request: workflow_dispatch: schedule: - # run every week (for --pre release tests) - - cron: "0 0 * * 0" + - cron: "0 0 * * *" # run daily concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -24,51 +21,19 @@ jobs: - run: pipx run check-manifest test: - name: ${{ matrix.platform }} py${{ matrix.python-version }} ${{ matrix.pydantic }} - runs-on: ${{ matrix.platform }} + uses: pyapp-kit/workflows/.github/workflows/test-pyrepo.yml@v1 + with: + os: ${{ matrix.os }} + python-version: ${{ matrix.python-version }} + pip-post-installs: ${{ matrix.pydantic }} + pip-install-pre-release: ${{ github.event_name == 'schedule' }} + report-failures: ${{ github.event_name == 'schedule' }} strategy: fail-fast: false matrix: python-version: ["3.8", "3.9", "3.10", "3.11"] - platform: [ubuntu-latest, macos-latest, windows-latest] - pydantic: ["pydantic", "pydantic<2"] - - steps: - - uses: actions/checkout@v4 - - - name: ๐Ÿ Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - cache-dependency-path: "pyproject.toml" - cache: "pip" - - - name: Install Dependencies - run: | - python -m pip install -U pip - # if running a cron job, we add the --pre flag to test against pre-releases - python -m pip install .[test] ${{ github.event_name == 'schedule' && '--pre' || '' }} - python -m pip install "${{ matrix.pydantic }}" - - - name: ๐Ÿงช Run Tests - run: pytest --color=yes --cov --cov-report=xml --cov-report=term-missing - - # If something goes wrong with --pre tests, we can open an issue in the repo - - name: ๐Ÿ“ Report --pre Failures - if: failure() && github.event_name == 'schedule' - uses: JasonEtco/create-an-issue@v2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PLATFORM: ${{ matrix.platform }} - PYTHON: ${{ matrix.python-version }} - RUN_ID: ${{ github.run_id }} - TITLE: "[test-bot] pip install --pre is failing" - with: - filename: .github/TEST_FAIL_TEMPLATE.md - update_existing: true - - - name: Coverage - uses: codecov/codecov-action@v3 + os: [ubuntu-latest, macos-latest, windows-latest] + pydantic: ["pydantic", "'pydantic<2'"] deploy: name: Deploy