From ece919cdaedc2a543642826281b98b6f755daf4e Mon Sep 17 00:00:00 2001 From: Nicola Coretti Date: Thu, 8 Feb 2024 13:10:37 +0100 Subject: [PATCH] Add basic github workflows --- .../pytest-plugins-environment/action.yml | 59 +++++++++++++++++++ .github/workflows/cd.yml | 0 .github/workflows/checks.yml | 26 ++++++++ .github/workflows/ci-main.yml | 13 ++++ .github/workflows/ci-pr.yml | 9 +++ 5 files changed, 107 insertions(+) create mode 100644 .github/actions/pytest-plugins-environment/action.yml create mode 100644 .github/workflows/cd.yml create mode 100644 .github/workflows/checks.yml create mode 100644 .github/workflows/ci-main.yml create mode 100644 .github/workflows/ci-pr.yml diff --git a/.github/actions/pytest-plugins-environment/action.yml b/.github/actions/pytest-plugins-environment/action.yml new file mode 100644 index 0000000..983c9bf --- /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 ${{ 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..9b5b8fb --- /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@v3 + with: + fetch-depth: 0 + + - name: Setup pytest-plugins-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..aea586d --- /dev/null +++ b/.github/workflows/ci-main.yml @@ -0,0 +1,13 @@ +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: + verify: + 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..8569fd5 --- /dev/null +++ b/.github/workflows/ci-pr.yml @@ -0,0 +1,9 @@ +name: Continues Integration (PR) + +on: + pull_request: + +jobs: + + verify: + uses: ./.github/workflows/checks.yml