From 8d4d728ab181052c8a5000992e14f18eea87ddb8 Mon Sep 17 00:00:00 2001 From: Sergio Freire Date: Thu, 29 Feb 2024 15:28:22 +0000 Subject: [PATCH] Create localbuildapp.yml --- .github/workflows/localbuildapp.yml | 74 +++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .github/workflows/localbuildapp.yml diff --git a/.github/workflows/localbuildapp.yml b/.github/workflows/localbuildapp.yml new file mode 100644 index 0000000..e7fa520 --- /dev/null +++ b/.github/workflows/localbuildapp.yml @@ -0,0 +1,74 @@ +# This workflow will install Python dependencies and run tests with a single version of Python +# For more information see: +# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Build App + +on: + push: + branches: + - main + pull_request: + branches: + - '*' + +permissions: + contents: read + +jobs: + build: + + strategy: + matrix: + python_version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + os: [ubuntu-latest, windows-latest] + runs-on: self-hosted + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python_version }} + uses: actions/setup-python@v3 + with: + python-version: "${{ matrix.python_version }}" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r tests/requirements.txt + - name: Test with pytest (Linux) + if: runner.os == 'Linux' + run: | + coverage run -m pytest \ + -c ./tests/pytest.ini \ + -W ignore::pytest.PytestCollectionWarning \ + --md-report --md-report-output=report.md --md-report-color=never \ + tests || pytest_exit_code=$? + echo "## :clipboard: Test Results" >> $GITHUB_STEP_SUMMARY + cat report.md >> $GITHUB_STEP_SUMMARY + echo "## :bar_chart: Code coverage" >> $GITHUB_STEP_SUMMARY + coverage report --format markdown >> $GITHUB_STEP_SUMMARY + if [[ "$(coverage report --format total)" -lt 80 ]] + then + echo "::error::Code coverage is less than 80%" && exit_code=1 + fi + if [[ $pytest_exit_code -gt 0 ]] + then + echo "::error::Unit tests failed" && exit_code=1 + fi + exit $exit_code + - name: Test with pytest (Windows) + if: runner.os == 'Windows' + run: | + coverage run -m pytest -c ./tests/pytest.ini -W ignore::pytest.PytestCollectionWarning --md-report --md-report-output=report.md --md-report-color=never tests || pytest_exit_code=$? + echo "## :clipboard: Test Results" >> $GITHUB_STEP_SUMMARY + cat report.md >> $GITHUB_STEP_SUMMARY + echo "## :bar_chart: Code coverage" >> $GITHUB_STEP_SUMMARY + coverage report --format markdown >> $GITHUB_STEP_SUMMARY + if ( "$(coverage report --format total)" -lt 80 ) + { + echo "::error::Code coverage is less than 80%" && exit_code=1 + } + if ( $pytest_exit_code -gt 0 ) + { + echo "::error::Unit tests failed" && exit_code=1 + } + exit $exit_code