From d4d914108bf1130848fefe63e7ec87e2ccd56b92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20W=C3=B6llert?= Date: Fri, 12 Apr 2024 13:05:39 +0200 Subject: [PATCH 1/8] Add generic setup-test-env GH. --- .github/actions/setup-test-env.yml | 58 ++++++++++++++++++++++++++++++ .github/workflows/tests.yml | 16 ++++----- 2 files changed, 64 insertions(+), 10 deletions(-) create mode 100644 .github/actions/setup-test-env.yml diff --git a/.github/actions/setup-test-env.yml b/.github/actions/setup-test-env.yml new file mode 100644 index 00000000..7e28af01 --- /dev/null +++ b/.github/actions/setup-test-env.yml @@ -0,0 +1,58 @@ +name: 'Setup Test Environment' +description: 'Common setup for testing workflows' +inputs: + + python-version: + description: 'Define the Python version to use' + required: true + + install-graphviz: + description: 'Install graphviz and graphviz-dev' + required: true + + tox-environment: + description: 'Tox environment to run' + required: true + + continue-on-error: + description: 'Continue on error' + required: true + + code-coverage: + description: 'Enable code coverage' + required: true + +outputs: + random-number: + description: "Random number" + value: ${{ steps.random-number-generator.outputs.random-number }} +runs: + using: "composite" + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.python-version }} + + - name: Install Graphviz + if: ${{ inputs.install-graphviz == true }} + run: sudo apt-get install graphviz graphviz-dev + + - name: Install Tox + run: pip install tox + + - name: Invoke Tox + run: tox -e ${{ inputs.tox-environment }} + continue-on-error: ${{ inputs.continue-on-error }} + + - name: Code Coverage + if: ${{ inputs.code-coverage == true }} + uses: codecov/codecov-action@v4 + with: + fail_ci_if_error: true + token: ${{ secrets.CODACY_PROJECT_TOKEN }} + + diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6903b9c9..9e77b723 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -49,18 +49,14 @@ jobs: sphinx_version: "72" runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - name: Setup Test Environment + uses: ./.github/actions/setup-test-env with: python-version: ${{ matrix.python_version }} - - run: sudo apt-get install graphviz graphviz-dev - - run: pip install tox - - run: tox -e pydantic${{ matrix.pydantic_version }}-sphinx${{ matrix.sphinx_version }} - - name: Code Coverage - uses: codecov/codecov-action@v4 - with: - fail_ci_if_error: true - token: ${{ secrets.CODACY_PROJECT_TOKEN }} + tox-environment: pydantic${{ matrix.pydantic_version }}-sphinx${{ matrix.sphinx_version }} + install-graphviz: true + continue-on-error: false + code-coverage: true test-latest-version: environment: Tests From 8af20d901a1b3c8bbdf2358ba6eff2604eb3c6e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20W=C3=B6llert?= Date: Fri, 12 Apr 2024 13:07:11 +0200 Subject: [PATCH 2/8] Update GH action location --- .../actions/{setup-test-env.yml => setup-test-env/action.yml} | 3 --- .github/workflows/tests.yml | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) rename .github/actions/{setup-test-env.yml => setup-test-env/action.yml} (96%) diff --git a/.github/actions/setup-test-env.yml b/.github/actions/setup-test-env/action.yml similarity index 96% rename from .github/actions/setup-test-env.yml rename to .github/actions/setup-test-env/action.yml index 7e28af01..77e53f98 100644 --- a/.github/actions/setup-test-env.yml +++ b/.github/actions/setup-test-env/action.yml @@ -29,9 +29,6 @@ outputs: runs: using: "composite" steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Python uses: actions/setup-python@v5 with: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9e77b723..88eab662 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -49,6 +49,9 @@ jobs: sphinx_version: "72" runs-on: ubuntu-22.04 steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Test Environment uses: ./.github/actions/setup-test-env with: From dfdbfcf0ea9307d5fcf9eadc35395148ce6311c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20W=C3=B6llert?= Date: Fri, 12 Apr 2024 13:09:58 +0200 Subject: [PATCH 3/8] Add missing shell attribute to GH runs --- .github/actions/setup-test-env/action.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/actions/setup-test-env/action.yml b/.github/actions/setup-test-env/action.yml index 77e53f98..7ea59f1d 100644 --- a/.github/actions/setup-test-env/action.yml +++ b/.github/actions/setup-test-env/action.yml @@ -37,12 +37,15 @@ runs: - name: Install Graphviz if: ${{ inputs.install-graphviz == true }} run: sudo apt-get install graphviz graphviz-dev + shell: bash - name: Install Tox run: pip install tox + shell: bash - name: Invoke Tox run: tox -e ${{ inputs.tox-environment }} + shell: bash continue-on-error: ${{ inputs.continue-on-error }} - name: Code Coverage From 9f47f2f7958468027764917ca998b31096121f4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20W=C3=B6llert?= Date: Fri, 12 Apr 2024 13:23:59 +0200 Subject: [PATCH 4/8] Add codacy token to input --- .github/actions/setup-test-env/action.yml | 16 +++++++++------- .github/workflows/tests.yml | 6 +++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/actions/setup-test-env/action.yml b/.github/actions/setup-test-env/action.yml index 7ea59f1d..3f54ca46 100644 --- a/.github/actions/setup-test-env/action.yml +++ b/.github/actions/setup-test-env/action.yml @@ -8,7 +8,8 @@ inputs: install-graphviz: description: 'Install graphviz and graphviz-dev' - required: true + required: false + default: false tox-environment: description: 'Tox environment to run' @@ -16,11 +17,12 @@ inputs: continue-on-error: description: 'Continue on error' - required: true + required: false + default: false - code-coverage: - description: 'Enable code coverage' - required: true + codacy: + description: 'Enable code coverage by providing Codacy token' + required: false outputs: random-number: @@ -49,10 +51,10 @@ runs: continue-on-error: ${{ inputs.continue-on-error }} - name: Code Coverage - if: ${{ inputs.code-coverage == true }} + if: ${{ inputs.codacy}} uses: codecov/codecov-action@v4 with: fail_ci_if_error: true - token: ${{ secrets.CODACY_PROJECT_TOKEN }} + token: ${{ inputs.codacy}} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 88eab662..f6191d44 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -51,15 +51,15 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - + - name: Setup Test Environment uses: ./.github/actions/setup-test-env with: python-version: ${{ matrix.python_version }} tox-environment: pydantic${{ matrix.pydantic_version }}-sphinx${{ matrix.sphinx_version }} install-graphviz: true - continue-on-error: false - code-coverage: true + codacy: ${{ secrets.CODACY_PROJECT_TOKEN }} + test-latest-version: environment: Tests From ebc0d0bbe686a50f9f5a26fba46124d05c861584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20W=C3=B6llert?= Date: Fri, 12 Apr 2024 13:28:41 +0200 Subject: [PATCH 5/8] Fix boolean input parameter usage --- .github/actions/setup-test-env/action.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/setup-test-env/action.yml b/.github/actions/setup-test-env/action.yml index 3f54ca46..5d36e8f4 100644 --- a/.github/actions/setup-test-env/action.yml +++ b/.github/actions/setup-test-env/action.yml @@ -9,7 +9,7 @@ inputs: install-graphviz: description: 'Install graphviz and graphviz-dev' required: false - default: false + default: 'false' tox-environment: description: 'Tox environment to run' @@ -18,7 +18,7 @@ inputs: continue-on-error: description: 'Continue on error' required: false - default: false + default: 'false' codacy: description: 'Enable code coverage by providing Codacy token' @@ -37,7 +37,7 @@ runs: python-version: ${{ inputs.python-version }} - name: Install Graphviz - if: ${{ inputs.install-graphviz == true }} + if: ${{ inputs.install-graphviz == 'true' }} run: sudo apt-get install graphviz graphviz-dev shell: bash From 4f866f8b236fe89cedba21ecf2685c63f14e68ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20W=C3=B6llert?= Date: Fri, 12 Apr 2024 13:39:53 +0200 Subject: [PATCH 6/8] Final refactor --- .../{setup-test-env => invoke-tox}/action.yml | 3 +- .github/workflows/tests.yml | 72 +++++++++---------- 2 files changed, 37 insertions(+), 38 deletions(-) rename .github/actions/{setup-test-env => invoke-tox}/action.yml (97%) diff --git a/.github/actions/setup-test-env/action.yml b/.github/actions/invoke-tox/action.yml similarity index 97% rename from .github/actions/setup-test-env/action.yml rename to .github/actions/invoke-tox/action.yml index 5d36e8f4..bce73124 100644 --- a/.github/actions/setup-test-env/action.yml +++ b/.github/actions/invoke-tox/action.yml @@ -4,7 +4,8 @@ inputs: python-version: description: 'Define the Python version to use' - required: true + required: false + default: '3.x' install-graphviz: description: 'Install graphviz and graphviz-dev' diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f6191d44..b97d2432 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -52,72 +52,70 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Setup Test Environment - uses: ./.github/actions/setup-test-env + - name: Setup Test Environment and Run Tox + uses: ./.github/actions/invoke-tox with: python-version: ${{ matrix.python_version }} tox-environment: pydantic${{ matrix.pydantic_version }}-sphinx${{ matrix.sphinx_version }} install-graphviz: true codacy: ${{ secrets.CODACY_PROJECT_TOKEN }} - test-latest-version: environment: Tests runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - run: sudo apt-get install graphviz graphviz-dev - - run: pip install tox - - run: tox -e latest - - name: Code Coverage - uses: codecov/codecov-action@v4 + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Test Environment and Run Tox + uses: ./.github/actions/invoke-tox with: - fail_ci_if_error: true - token: ${{ secrets.CODACY_PROJECT_TOKEN }} + tox-environment: latest + install-graphviz: true + codacy: ${{ secrets.CODACY_PROJECT_TOKEN }} test-no-erdantic-version: environment: Tests runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Test Environment and Run Tox + uses: ./.github/actions/invoke-tox with: - python-version: '3.x' - - run: pip install tox - - run: tox -e no_erdantic + tox-environment: no_erdantic test-development-versions-deps: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Test Environment and Run Tox + uses: ./.github/actions/invoke-tox with: - python-version: '3.x' - - run: sudo apt-get install graphviz graphviz-dev - - run: pip install tox - - run: tox -e development - continue-on-error: true - - run: echo "Done" + tox-environment: development + continue-on-error: true linter: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Test Environment and Run Tox + uses: ./.github/actions/invoke-tox with: - python-version: '3.x' - - run: pip install tox - - run: tox -e linter + tox-environment: linter formatter: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Test Environment and Run Tox + uses: ./.github/actions/invoke-tox with: - python-version: '3.x' - - run: pip install tox - - run: tox -e formatter \ No newline at end of file + tox-environment: formatter \ No newline at end of file From 0152c4c4097caf23b9d738c87a4235258213431b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20W=C3=B6llert?= Date: Fri, 12 Apr 2024 13:41:32 +0200 Subject: [PATCH 7/8] Add graphviz to develop env --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b97d2432..465c4e85 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -96,6 +96,7 @@ jobs: uses: ./.github/actions/invoke-tox with: tox-environment: development + install-graphviz: true continue-on-error: true linter: From bf9321a5ce9e212a749159d60a6e9471e49d405c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20W=C3=B6llert?= Date: Fri, 12 Apr 2024 13:48:53 +0200 Subject: [PATCH 8/8] Move continue-on-error to workflow --- .github/actions/invoke-tox/action.yml | 6 ------ .github/workflows/tests.yml | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/actions/invoke-tox/action.yml b/.github/actions/invoke-tox/action.yml index bce73124..c8fc164a 100644 --- a/.github/actions/invoke-tox/action.yml +++ b/.github/actions/invoke-tox/action.yml @@ -16,11 +16,6 @@ inputs: description: 'Tox environment to run' required: true - continue-on-error: - description: 'Continue on error' - required: false - default: 'false' - codacy: description: 'Enable code coverage by providing Codacy token' required: false @@ -49,7 +44,6 @@ runs: - name: Invoke Tox run: tox -e ${{ inputs.tox-environment }} shell: bash - continue-on-error: ${{ inputs.continue-on-error }} - name: Code Coverage if: ${{ inputs.codacy}} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 465c4e85..fd7b42d0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -97,7 +97,7 @@ jobs: with: tox-environment: development install-graphviz: true - continue-on-error: true + continue-on-error: true linter: runs-on: ubuntu-22.04