From c6e565588b04e80a190b6bf9b1984265b4e498f0 Mon Sep 17 00:00:00 2001 From: Mike Gerber Date: Fri, 13 Jun 2025 17:29:10 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9A=99=20=20Switch=20to=20testing=20on=20Git?= =?UTF-8?q?Hub=20Actions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 23 ----------- .github/workflows/test.yml | 64 +++++++++++++++++++++++++++++++ .github/workflows/test_report.yml | 20 ++++++++++ 3 files changed, 84 insertions(+), 23 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/test.yml create mode 100644 .github/workflows/test_report.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index f87162e..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: 2.1 - -jobs: - test: - parameters: - python-version: - type: string - docker: - - image: cimg/python:<< parameters.python-version >> - steps: - - checkout - - run: pip3 install --upgrade pip - - run: pip3 install -e . - - run: pip3 install -r requirements-test.txt - - run: pytest - -workflows: - all-tests: - jobs: - - test: - matrix: - parameters: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..db089d0 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,64 @@ +name: 'Test' + +on: + + push: + branches: + - master + + pull_request: + branches: + - master + + schedule: + - cron: "00 16 07 * *" # = monthly + + # Allow manually running (from GitHub Web) + workflow_dispatch: + + # Allow calling this workflow (e.g. from release workflow) + workflow_call: + +jobs: + test: + + strategy: + fail-fast: false + matrix: + python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12", "3.13" ] + + runs-on: "ubuntu-latest" + + steps: + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + allow-prereleases: true + + - name: Checkout + uses: actions/checkout@v4 + + - name: Install possible lxml build requirements (if building from source) + run: sudo apt-get install -y libxml2-dev libxslt-dev python3-dev + - name: Install possible shapely build requirements (if building from source) + run: sudo apt-get install -y libgeos-dev + + - name: Update pip + run: python3 -m pip install -U pip + - name: Install requirements*.txt + run: | + for requirements_txt in requirements*.txt; do + python3 -m pip install -r $requirements_txt; + done + + - name: Test + run: | + cd src + python3 -m pytest --junitxml=../${{matrix.python-version}}-junit.xml -o junit_family=legacy + - name: Upload test results + uses: actions/upload-artifact@v4 + if: success() || failure() + with: + name: test-results-${{matrix.python-version}} + path: ${{matrix.python-version}}-junit.xml diff --git a/.github/workflows/test_report.yml b/.github/workflows/test_report.yml new file mode 100644 index 0000000..5579d8c --- /dev/null +++ b/.github/workflows/test_report.yml @@ -0,0 +1,20 @@ +name: 'Test - Report results' +on: + workflow_run: + workflows: ['test'] + types: + - completed +permissions: + contents: read + actions: read + checks: write +jobs: + report: + runs-on: ubuntu-latest + steps: + - uses: dorny/test-reporter@v1 + with: + artifact: /test-results-(.*)/ + name: 'test - Results ($1)' + path: '*junit.xml' + reporter: java-junit