From 04e9b0d36035b697bbbf8951b902a97cf6458aad Mon Sep 17 00:00:00 2001 From: AlexisGauthierAtKronos Date: Fri, 6 Jan 2023 14:11:34 -0500 Subject: [PATCH 1/2] Added Poetry dependency manager --- ...n-pipenv.yml => python-quality-checks.yml} | 46 +++++++++++++++---- 1 file changed, 37 insertions(+), 9 deletions(-) rename .github/workflows/{python-pipenv.yml => python-quality-checks.yml} (59%) diff --git a/.github/workflows/python-pipenv.yml b/.github/workflows/python-quality-checks.yml similarity index 59% rename from .github/workflows/python-pipenv.yml rename to .github/workflows/python-quality-checks.yml index 4debc1a..1c46d75 100644 --- a/.github/workflows/python-pipenv.yml +++ b/.github/workflows/python-quality-checks.yml @@ -1,4 +1,4 @@ -name: Python Pipenv +name: Python Quality Checks on: workflow_call: @@ -20,7 +20,8 @@ jobs: should-skip: ${{ steps.skip-check.outputs.should_skip }} steps: - - id: skip-check + - name: Skip Check + id: skip-check uses: fkirc/skip-duplicate-actions@v5 with: concurrent_skipping: same_content @@ -38,9 +39,36 @@ jobs: ] skip_after_successful_duplicate: true + dependencies-manager: + name: Dependencies manager finder + needs: [ pre-checks ] + if: ${{ needs.pre_checks.outputs.should-skip != 'true' }} + runs-on: ubuntu-latest + outputs: + dm: ${{ steps.dependencies-manager.outputs.dm }} + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Search Poetry + id: search-poetry + shell: bash + run: echo "poetry-str=$(cat .tool-versions | grep poetry | awk '{print $1}')" >> $GITHUB_OUTPUT + + - name: Check if poetry + id: check-if-poetry + shell: bash + run: echo "use-poetry=$(expr '${{ steps.search-poetry.outputs.poetry-str }}' == 'poetry')" >> $GITHUB_OUTPUT + + - name: Dependecies Manager + id: dependencies-manager + shell: bash + run: if [[ ${{ steps.check-if-poetry.outputs.use-poetry }} == 1 ]]; then echo 'dm=poetry'; else echo 'dm=pipenv'; fi >> $GITHUB_OUTPUT + setup: name: Setup - needs: [pre-checks] + needs: [ pre-checks ] if: ${{ needs.pre_checks.outputs.should-skip != 'true' }} runs-on: ubuntu-latest steps: @@ -52,7 +80,7 @@ jobs: unit-tests: name: Unit tests - needs: [setup] + needs: [ setup, dependencies-manager ] runs-on: ubuntu-latest steps: - name: Checkout @@ -63,11 +91,11 @@ jobs: - name: Run pytest working-directory: ${{ inputs.working-directory }} - run: pipenv run pytest -v + run: ${{ needs.dependencies-manager.outputs.dm }} run pytest -v type-check: name: Type check - needs: [setup] + needs: [ setup, dependencies-manager ] runs-on: ubuntu-latest steps: - name: Checkout @@ -78,11 +106,11 @@ jobs: - name: Run pytype working-directory: ${{ inputs.working-directory }} - run: pipenv run pytype + run: ${{ needs.dependencies-manager.outputs.dm }} run pytype code-style: name: Code style - needs: [setup] + needs: [ setup, dependencies-manager ] runs-on: ubuntu-latest steps: - name: Checkout @@ -93,4 +121,4 @@ jobs: - name: Run pycodestyle working-directory: ${{ inputs.working-directory }} - run: pipenv run pycodestyle --statistics --count + run: ${{ needs.dependencies-manager.outputs.dm }} run pycodestyle --statistics --count From 3b55a4261a52ddc0bee00bda19f28e63cb9feb7d Mon Sep 17 00:00:00 2001 From: AlexisGauthierAtKronos Date: Wed, 11 Jan 2023 10:04:15 -0500 Subject: [PATCH 2/2] Dependencies manager via output de setup-python --- .github/workflows/python-quality-checks.yml | 43 +++++---------------- 1 file changed, 10 insertions(+), 33 deletions(-) diff --git a/.github/workflows/python-quality-checks.yml b/.github/workflows/python-quality-checks.yml index 1c46d75..f6259dd 100644 --- a/.github/workflows/python-quality-checks.yml +++ b/.github/workflows/python-quality-checks.yml @@ -39,48 +39,25 @@ jobs: ] skip_after_successful_duplicate: true - dependencies-manager: - name: Dependencies manager finder - needs: [ pre-checks ] - if: ${{ needs.pre_checks.outputs.should-skip != 'true' }} - runs-on: ubuntu-latest - outputs: - dm: ${{ steps.dependencies-manager.outputs.dm }} - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Search Poetry - id: search-poetry - shell: bash - run: echo "poetry-str=$(cat .tool-versions | grep poetry | awk '{print $1}')" >> $GITHUB_OUTPUT - - - name: Check if poetry - id: check-if-poetry - shell: bash - run: echo "use-poetry=$(expr '${{ steps.search-poetry.outputs.poetry-str }}' == 'poetry')" >> $GITHUB_OUTPUT - - - name: Dependecies Manager - id: dependencies-manager - shell: bash - run: if [[ ${{ steps.check-if-poetry.outputs.use-poetry }} == 1 ]]; then echo 'dm=poetry'; else echo 'dm=pipenv'; fi >> $GITHUB_OUTPUT - setup: name: Setup needs: [ pre-checks ] if: ${{ needs.pre_checks.outputs.should-skip != 'true' }} runs-on: ubuntu-latest + outputs: + dependencies-manager: ${{ steps.setup-python.outputs.dependencies-manager }} + steps: - name: Checkout uses: actions/checkout@v3 - name: Setup Python + id: setup-python uses: equisoft-actions/setup-python@v1 unit-tests: name: Unit tests - needs: [ setup, dependencies-manager ] + needs: [ setup ] runs-on: ubuntu-latest steps: - name: Checkout @@ -91,11 +68,11 @@ jobs: - name: Run pytest working-directory: ${{ inputs.working-directory }} - run: ${{ needs.dependencies-manager.outputs.dm }} run pytest -v + run: ${{ needs.setup.outputs.dependencies-manager }} run pytest -v type-check: name: Type check - needs: [ setup, dependencies-manager ] + needs: [ setup ] runs-on: ubuntu-latest steps: - name: Checkout @@ -106,11 +83,11 @@ jobs: - name: Run pytype working-directory: ${{ inputs.working-directory }} - run: ${{ needs.dependencies-manager.outputs.dm }} run pytype + run: ${{ needs.setup.outputs.dependencies-manager }} run pytype code-style: name: Code style - needs: [ setup, dependencies-manager ] + needs: [ setup ] runs-on: ubuntu-latest steps: - name: Checkout @@ -121,4 +98,4 @@ jobs: - name: Run pycodestyle working-directory: ${{ inputs.working-directory }} - run: ${{ needs.dependencies-manager.outputs.dm }} run pycodestyle --statistics --count + run: ${{ needs.setup.outputs.dependencies-manager }} run pycodestyle --statistics --count