diff --git a/.github/actions/pytest-plugins-environment/action.yml b/.github/actions/pytest-plugins-environment/action.yml new file mode 100644 index 0000000..efa3993 --- /dev/null +++ b/.github/actions/pytest-plugins-environment/action.yml @@ -0,0 +1,59 @@ +name: "pytest-plugin-environment" +description: "This action sets up an environment for testing and building pytest plugins" + + +inputs: + + python-version: + description: 'Python version to use' + required: true + default: 3.9 + + poetry-version: + description: 'Poetry version to use' + required: true + default: 1.2.2 + + pipx-version: + description: 'Pipx version to use' + required: true + default: 1.0.0 + + ruff-version: + description: 'Ruff version to use' + required: true + default: 0.2.1 + + just-version: + description: 'Just version to use' + required: true + default: 1.16.0 + +runs: + + using: "composite" + steps: + + - name: Setup Python (${{ inputs.python-version}}) + uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.python-version }} + + - name: Setup Poetry (${{ inputs.poetry-version }}) + uses: abatilo/actions-poetry@v2 + with: + poetry-version: ${{ inputs.poetry-version }} + + - name: Setup pipx (${{ inputs.pipx-version }}) + run: pip install "pipx==${{ inputs.pipx-version }}" + shell: bash + + - name: Setup ruff (${{ inputs.ruff-version }}) + run: pipx install "ruff==${{ inputs.ruff-version }}" + shell: bash + + - name: Setup just (${{ inputs.just-version }}) + uses: extractions/setup-just@v1 + with: + just-version: ${{ inputs.just-version }} + diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml new file mode 100644 index 0000000..e69de29 diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml new file mode 100644 index 0000000..46fb6a9 --- /dev/null +++ b/.github/workflows/checks.yml @@ -0,0 +1,26 @@ +name: Checks + +on: + workflow_call: + secrets: + ALTERNATIVE_GITHUB_TOKEN: + required: false + +jobs: + + Checks: + name: Tests + runs-on: ubuntu-latest + + steps: + - name: SCM Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Development Environment + uses: ./.github/actions/pytest-plugins-environment + + - name: Run Tests of all plugins + run: just test + diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml new file mode 100644 index 0000000..86499c5 --- /dev/null +++ b/.github/workflows/ci-main.yml @@ -0,0 +1,15 @@ +name: Continues Integration (Master) + +on: + - workflow_dispatch: + + - push: + - main + - schedule: + # “At 00:00 on every 7th day-of-month from 1 through 31.” (https://crontab.guru) + - cron: "0 0 1/7 * *" + +jobs: + + Checks: + uses: ./.github/workflows/checks.yml diff --git a/.github/workflows/ci-pr.yml b/.github/workflows/ci-pr.yml new file mode 100644 index 0000000..450daad --- /dev/null +++ b/.github/workflows/ci-pr.yml @@ -0,0 +1,9 @@ +name: Continues Integration (PR) + +on: + pull_request: + +jobs: + + Checks: + uses: ./.github/workflows/checks.yml