diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml new file mode 100644 index 0000000..079f34b --- /dev/null +++ b/.github/workflows/coverage.yaml @@ -0,0 +1,49 @@ +name: Code coverage + +on: + pull_request: + branches: + - '*' + +jobs: + comment_coverage: + runs-on: ubuntu-latest + steps: + - name: GH_TOKEN + if: env.GH_TOKEN == '' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: echo "GH_TOKEN=${GITHUB_TOKEN}" >> $GITHUB_ENV + + - name: ๐Ÿ”€ checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: "${{ env.GH_TOKEN }}" + + - name: ๐Ÿ python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: ๐Ÿ“ฆ setup pdm + uses: pdm-project/setup-pdm@v4 + with: + cache: true + + - name: ๐Ÿ“ฆ install dependencies + run: | + pdm install + + - name: configure git + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + - name: ๐Ÿงช run coverage + run: | + pdm run pytest --cov --junitxml=pytest.xml --cov-report=term-missing | tee pytest-coverage.txt + - name: ๐Ÿ“Š comment coverage + uses: MishaKav/pytest-coverage-comment@main + with: + pytest-coverage-path: pytest-coverage.txt + junitxml-path: pytest.xml \ No newline at end of file diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d6e7f0c..ac9ccd8 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -38,9 +38,16 @@ env: GH_TOKEN: ${{ secrets.GH_TOKEN }} jobs: - create_version: + test: + name: Test runs-on: ubuntu-latest - name: Create version from tag + steps: + - name: Test + uses: ./.github/actions/test + bump_version: + needs: test + runs-on: ubuntu-latest + name: Bump version and create release steps: - name: GH_TOKEN if: env.GH_TOKEN == '' diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..70fe466 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,38 @@ +name: Run tests only + +on: + push: + branches: + - '*' + workflow_call: + +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +jobs: + test: + name: Test + runs-on: ubuntu-latest + steps: + - name: ๐Ÿ”€ checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: ๐Ÿ python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: ๐Ÿ“ฆ setup pdm + uses: pdm-project/setup-pdm@v4 + with: + cache: true + + - name: ๐Ÿ“ฆ install dependencies + run: | + pdm install + + - name: ๐Ÿงช run tests + id: test + run: | + pdm run pytest -v