diff --git a/actions/uv/coverage/action.yml b/actions/uv/coverage/action.yml new file mode 100644 index 0000000..321e0b9 --- /dev/null +++ b/actions/uv/coverage/action.yml @@ -0,0 +1,58 @@ +# Copyright 2023 Stanford University Convex Optimization Group +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +name: Measure test coverage + +description: "Test for coverage" + +on: + workflow_call: + inputs: + source-folder: + description: 'Source folder' + type: string + required: false + default: 'cvx' + +runs: + using: "composite" + steps: + - uses: cvxgrp/.github/actions/uv/setup@main + + - name: Test on Linux + shell: bash + run: | + uv pip install --no-cache-dir \ + pytest \ + pytest-cov \ + pytest-html \ + pytest-random-order + + uv run pytest --cov=${{ inputs.source-folder || 'cvx' }} --random-order --verbose \ + --html=artifacts/tests/html-report/report.html \ + --cov-report term \ + --cov-report xml:artifacts/tests/coverage/coverage.xml \ + --cov-report json:artifacts/tests/coverage/coverage.json \ + --cov-report lcov:artifacts/tests/coverage/coverage.info \ + --cov-report html:artifacts/tests/html-coverage \ + tests/ + + # I want to upload the result to gh-pages, hence this file disturbs + rm -f artifacts/tests/html-coverage/.gitignore + + - name: Archive tests results + uses: actions/upload-artifact@v4 + with: + name: tests_coverage + path: artifacts/tests + retention-days: 1 diff --git a/actions/uv/test/action.yml b/actions/uv/test/action.yml new file mode 100644 index 0000000..ca4f233 --- /dev/null +++ b/actions/uv/test/action.yml @@ -0,0 +1,39 @@ +# Copyright 2023 Stanford University Convex Optimization Group +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +name: Perform testing + +description: "Perform a test" + +on: + workflow_call: + inputs: + python-version: + description: 'Python version' + type: string + required: false + default: '3.12' + +runs: + using: "composite" + steps: + - uses: actions/checkout@v4 + + - uses: cvxgrp/.github/actions/setup-environment@main + with: + python-version: ${{ inputs.python-version || '3.12' }} + + - name: Test + shell: bash + run: | + uv run pytest tests