diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index ff6d852..9fb6eb1 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -3,43 +3,16 @@ on: push: branches: - main - pull_request: {} - schedule: - - cron: '0 14 * * MON' + pull_request: + types: + - opened + - synchronize + - reopened + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: - test: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Set up Python - id: setup-python - uses: actions/setup-python@v5 - with: - python-version: 3.13 - - name: Install & configure poetry - uses: snok/install-poetry@v1 - with: - virtualenvs-create: true - virtualenvs-in-project: true - virtualenvs-path: .venv - installer-parallel: true - - name: Load cached venv if exists - id: cached-poetry-dependencies - uses: actions/cache@v4 - with: - path: .venv - key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} - - name: Install dependencies if cache doesn't exist - if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - run: poetry install --no-interaction - # NOTE: there are nothing to test yet, unless we add some hooks, just check that it runs - - name: Run tests on skeleton code - run: poetry run inv test.hooks - - name: Build default project from skeleton and run tests - run: | - poetry run cookiecutter --no-input --overwrite-if-exists --output-dir build . - cd build/awesome - cp ./api/.env.example ./api/.env - make api-test + run-checks: + uses: django-stars/backend-skeleton/.github/workflows/test.yml@improve-github-workflow diff --git a/.github/workflows/schedule.yml b/.github/workflows/schedule.yml new file mode 100644 index 0000000..29fed33 --- /dev/null +++ b/.github/workflows/schedule.yml @@ -0,0 +1,8 @@ +name: Backend Skeleton Scheduled Check +on: + schedule: + - cron: '0 14 * * MON' + +jobs: + run-checks: + uses: django-stars/backend-skeleton/.github/workflows/test.yml@improve-github-workflow diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..680050b --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,41 @@ +name: Test + +on: + workflow_call: + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Python + id: setup-python + uses: actions/setup-python@v5 + with: + python-version: 3.13 + - name: Install & configure poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: true + virtualenvs-path: .venv + installer-parallel: true + - name: Load cached venv if exists + id: cached-poetry-dependencies + uses: actions/cache@v4 + with: + path: .venv + key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} + - name: Install dependencies if cache doesn't exist + if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' + run: poetry install --no-interaction + # NOTE: there are nothing to test yet, unless we add some hooks, just check that it runs + - name: Run tests on skeleton code + run: poetry run inv test.hooks + - name: Build default project from skeleton and run tests + run: | + poetry run cookiecutter --no-input --overwrite-if-exists --output-dir build . + cd build/awesome + cp ./api/.env.example ./api/.env + make api-test